我正在玩db2存儲過程,並且我正在努力解讀以下概念。 當我創建下面db2存儲過程創建行爲
create or replace procedure test()
begin
insert into mytable(a) values ('a');
insert into mytable(a) values ('b');
insert into mytable(a) values ('c');
end
喜歡簡單的存儲過程,我可以看到,MYTABLE得到這個創建過程中填補。 我期待使用'call test()'插入我的數據,但我可以看到它不是我想象的。我在這裏做錯了什麼,或者它的確如此工作?
爲了避免這種古怪的行爲,我發現我需要把一切都放在同一行,我有我的期望,即沒有插入數據時,我調用任何「創建或替換程序」
create or replace procedure test() begin insert into mytable(a) values ('a'); insert into mytable(a) values ('b'); insert into mytable(a) values ('c'); end
你是在命令行上輸入的嗎?如果是這樣,你需要轉義新的行字符。最好還是把所有的定義放在一個文件中並處理完整的文件。 – 2013-04-11 03:15:28
@詹姆斯安德森:我已經這樣做了。該代碼位於名爲test.sql的文件中,我使用以下命令'db2 -v -t -f test.sql -m -z xti.out'。ONce再次看起來像它讀取時執行那些行。 – 2013-04-11 07:08:12
請在您的問題或標籤中指出這是一個關於DB2 LUW的問題。此行爲不適用於其他平臺。 – WarrenT 2013-04-11 11:41:47