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

DB2 user defined functions and custom schema

本文关键字:自定义 模式 函数 用户 定义 DB2      更新时间:2023-10-16

我使用以下命令在DB2数据库中创建一个自定义模式:

db2 create schema MYSCHEMA authorization 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 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函数。你能告诉我这里缺了什么吗?

您需要设置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