我以这种方式在 DB2(6.01 版)中创建了一个函数:
CREATE FUNCTION myschema.test_c_c(param CHAR(1)) RETURNS CHAR(1) RETURN param;
并获得一条成功消息,“System i Navigator”向我展示了 myschema 下的该功能。但是当我尝试以这种方式调用此函数时:
SELECT myschema.test_c_c('X') FROM SYSIBM.SYSDUMMY1;
我收到以下消息:
[SQL0204] TEST_C_C der Art *N in myschema nicht gefunden.
[SQL State=42704, DB Errorcode=-204]
“nicht gefunden”等于“未找到”。
错误代码-204的解释(部分,完整的错误代码描述在这里)
“由名称标识的对象未在 DB2® 子系统中定义。”
最后,使用 INT 参数一切正常:
CREATE FUNCTION myschema.test_i_ri(param INT) RETURNS INT RETURN param;
SELECT myschema.test_i_ri(4711) FROM SYSIBM.SYSDUMMY1;
CREATE FUNCTION myschema.test_ii_ri(param1 INT, param2 INT) RETURNS INT RETURN param1 +param2;
SELECT myschema.test_ii_ri(800, 15) FROM SYSIBM.SYSDUMMY1;
我在哪里错过了重点?
我使用SQL Workbench/J执行所有 statmentens (我觉得这非常有用)