使用db2batch的db2过程SYSPROC.ADMIN_DROP_SCHEMA

时间:2012-09-10 11:02:31

标签: 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上工作。

1 个答案:

答案 0 :(得分:1)

参数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()