我使用以下命令在DB2数据库中创建自定义模式:
db2 create schema MYSCHEMA authorization db2user
(db2user是OS用户)
然后通过我的应用程序,我在这个架构中安装了一些函数,它们似乎已正确安装:
db2 => select substr(funcschema,1,12)as funcs, substr(funcname,1,30) as func from syscat.functions where funcschema='MYSCHEMA' order by 1,2
FUNCS FUNC
------------ ------------------------------
MYSCHEMA NUMCAST
MYSCHEMA NUMSORT
2 record(s) selected.
但是必须使用这些函数的查询失败。
SQL0440N No authorized routine named "NUMCAST" of type "FUNCTION" having compatible arguments was found.
我使用以下API进行连接。自定义架构名称在connection_string
变量
retcode = SQLDriverConnect(pDbConnectionHandle->g_hDbc,
NULL,
connection_string,
SQL_NTS,
NULL, 0, NULL,
SQL_DRIVER_NOPROMPT);
同一个应用程序在架构中创建一个表,但架构中安装的NUMCAST
函数无法识别。你能告诉我这里缺少什么吗?
答案 0 :(得分:1)
您需要设置CURRENT PATH
特殊寄存器以包含您的架构。发出db2命令,如:
SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","SYSIBMADM","myschema"