Stored-Procedures
DB2 10.5 儲存過程問題
在嘗試一次呼叫多個語句時,我在使用 Data Studio 4.1.3 的 DB2 LUW 10.5 中的儲存過程出現問題。我已將問題縮小到處理分號 (;) 的方式。為了更輕鬆地進行故障排除,我創建了一個非常簡單的範例來說明我正在嘗試做的事情。
CREATE OR REPLACE PROCEDURE DB2ADMIN.sp_Test () delete from "DB2ADMIN"."TestTable"; insert into "DB2ADMIN"."TestTable" values('a','a','a'); insert into "DB2ADMIN"."TestTable" values('b','b','b'); select * from "DB2ADMIN"."TestTable";
如果我執行上面的程式碼,它可以完成,但是當我查看 sp 時,我只看到:
--<ScriptOptions statementTerminator=";"/> CREATE OR REPLACE PROCEDURE DB2ADMIN.sp_Test () delete from "DB2ADMIN"."TestTable";
它只讀取第一個分號然後停止。如果我刪除所有分號但最後一個分號,則不會創建該過程。我在現實生活中的程式碼要長得多,但行為相同。任何幫助或想法將不勝感激。
在儲存過程主體中,您必須使用分號來分隔語句。但是分號也是大多數客戶端中分隔語句的預設設置,因此您最終需要將客戶端的分隔符更改為其他內容(我使用@)。你最終會得到類似的東西:
create procedure cleanup() begin delete from mytable; delete from myothertable; end @