Stored procedures Can';t替换创建表的现有存储过程
我有一个删除/创建表的存储过程。第一次创建过程时,它会成功,并且过程运行正常。但是,如果我尝试替换该过程,则会出现错误:Stored procedures Can';t替换创建表的现有存储过程,stored-procedures,db2-luw,Stored Procedures,Db2 Luw,我有一个删除/创建表的存储过程。第一次创建过程时,它会成功,并且过程运行正常。但是,如果我尝试替换该过程,则会出现错误: The name of the object to be created is identical to the existing name "TABLENAME" of type "TABLE". 即使过程在表创建语句之前有一个“TABLENAME”的drop语句,它也会这样做。一个简单的例子: create or replace procedure example LA
The name of the object to be created is identical to the existing name "TABLENAME" of type "TABLE".
即使过程在表创建语句之前有一个“TABLENAME”的drop语句,它也会这样做。一个简单的例子:
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语句或忽略错误
我使用的是DB2V10.1.0.3。要作为独立的SQL块运行一系列命令,请确保使用不同的SQL分隔符,而不是分号。分号在SQL PL中用作语句终止符,因此需要使用不同的字符来分隔脚本中的多个命令。将过程末尾的分号(;)更改为其他类似“@”的内容 请参见这看起来像一个bug(或“功能”)。您可以通过动态执行
CREATE TABLE
语句来解决此问题:executeimmediate'CREATE TABLE TABLENAME(一个整数)'代码>