从 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 上工作。
最佳答案
参数 ERRORTABSCHEMA
和 ERRORTAB
是 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/