成功从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上工作。
答案 0 :(得分:1)
参数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()