c++ - DB2 用户定义函数和自定义模式

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

我使用以下命令在我的 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"

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

关于c++ - DB2 用户定义函数和自定义模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8784829/

相关文章:

c++ - 查找 vector 中的重复元素

c - 如何阻止我的程序在保存字符之前跳过它们

db2 - 如何打印变量和值?

DB2 事务日志已满。如何冲洗/清除它?

c++ - 无法在 CreateProcess 中传递命令行参数

c++ - 段错误描述解释

C 使用 typedef 或 #define 定义结构

CreateProcessWithLogonW 和AssignProcessToJobObject

mysql - 我的sql语句有两个部分附加 'union all'。我希望第二部分仅在某些条件成立时才执行

java - 对 OOP 和过程编程做出这样的肯定是正确的吗?