database - 使用 db2batch 的 db2 过程 SYSPROC.ADMIN_DROP_SCHEMA

标签 database db2

从 DB2 CMD 成功调用以下命令,

SYSPROC.ADMIN_DROP_SCHEMA('TESTSCHEMA', NULL, 'ERRORSCHEMA', 'ERRORTABLE')

输出参数的值

Parameter Name : ERRORTABSCHEMA
Parameter Value : TESTSCHEMA

Parameter Name : ERRORTAB
Parameter Value : ERRORTABLE

Return Status = 0

但是当使用 db2batch 通过 Perl 脚本运行相同的命令时,会出现以下错误,

CLI error in preparing the SQL statement:
(-469): [IBM][CLI Driver][DB2/NT] SQL0469N  The parameter mode OUT or INOUT is n
ot valid for a parameter in the routine named "ADMIN_DROP_SCHEMA" with specific
name "ADMIN_DROP_SCHEMA" (parameter number "3", name "ERRORTABSCHEMA").  SQLSTAT
E=42886

有什么指点吗?仅过去几天在 DB2 上工作。

最佳答案

参数 ERRORTABSCHEMAERRORTAB 是 INOUT 变量,需要在使用前声明。

您可以改为创建存储过程并调用该存储过程:

CREATE OR REPLACE PROCEDURE sample.delete_schema() BEGIN
    declare varErrSchema varchar(128) default 'ERRORSCHEMA';
    declare varErrTable varchar(128) default 'ERRORTAB';
    call sysproc.admin_drop_schema ('SCHEMANAME', NULL, varErrSchema, varErrTable);
END@

然后您可以调用存储过程 调用 sample.delete_schema ()

关于database - 使用 db2batch 的 db2 过程 SYSPROC.ADMIN_DROP_SCHEMA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12350323/

相关文章:

java - 使用准备好的语句进行选择查询时获取 SQL 异常

sql - 为什么允许在表名后面使用 'from'?它有什么作用?

db2 - 与 VSAM 相比,DB2 有哪些优势?

php - 一个类似 facebook 的 php 通知系统

Windows Server 2019 中的 Java 8 性能问题

java - OutputStream 到 DB2 数据库表的 BLOB 列

html - 链接到数据库(独立)以使用 html/css 页面进行测试

python - 为什么 SQLITE 不接受使用 Python 3 的大于 8 的 INTEGER/TEXT 数据?

database - 图形数据库中是否存在模式之类的东西?

java - JPA中如何连接多个数据库?