我使用以下命令在我的 DB2 数据库中创建自定义模式:
db2 创建模式 MYSCHEMA 授权 db2user
(db2user是操作系统用户)
然后通过我的应用程序,我在此架构中安装了一些功能,它们似乎已正确安装:
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 找不到具有兼容参数的类型为“FUNCTION”的名为“NUMCAST”的授权例程。
我使用以下 API 进行连接。自定义架构名称在 connection_string
变量中指定
retcode = SQLDriverConnect(pDbConnectionHandle->g_hDbc,
无效的,
连接字符串,
SQL_NTS,
空,0,空,
SQL_DRIVER_NOPROMPT);
同一个应用程序在架构中创建了一个表,但无法识别架构中安装的 NUMCAST
函数。你能告诉我这里缺少什么吗?
最佳答案
您需要设置CURRENT PATH
专用寄存器以包含您的架构。发出 db2 命令,例如:
SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","SYSIBMADM","myschema"
关于c++ - DB2 用户定义函数和自定义模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8784829/