我有一个删除/创建表的存储过程。第一次创建过程成功,程序运行正常。但是,如果我尝试替换该过程,则会出现错误:
The name of the object to be created is identical to the existing name "TABLENAME" of type "TABLE".
即使该过程具有" TABLENAME"的删除声明,它也会这样做。紧接在表创建语句之前。一个精简的例子:
create or replace procedure example
LANGUAGE SQL
BEGIN
DECLARE CONTINUE HANDLER FOR SQLSTATE '42704'
BEGIN END;
drop table TABLENAME;
create table TABLENAME(AN INTEGER);
END;
有没有办法让DB2识别drop语句或忽略错误?
关于DB2 v10.1.0.3。
答案 0 :(得分:0)
要将一系列命令作为独立的SQL块运行,请确保使用不同的SQL分隔符而不是分号。分号在SQL PL中用作语句终止符,因此您需要使用不同的字符来分隔脚本中的多个命令。在程序结束时将分号(&#34 ;;")更改为" @"