DB2用户定义的函数和自定义模式

时间:2012-01-09 06:51:36

标签: c++ c db2 command-line-interface

我使用以下命令在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函数无法识别。你能告诉我这里缺少什么吗?

1 个答案:

答案 0 :(得分:1)

您需要设置CURRENT PATH特殊寄存器以包含您的架构。发出db2命令,如:

SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","SYSIBMADM","myschema"

http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.sql.ref.doc/doc/r0005877.html