2013-11-14 42 views

回答

1

有關使用參數文件的文檔肯定不是很好。但是,您確實可以使用db2batch調用存儲過程**。

下面是命令行的示例:

db2batch -d yourdb -iso cs -f stmts.sql -m stmts.data 

調用過程會是這個樣子的SQL文件(stmts.sql):

--#BGBLK 5 
call my.storedproc(?, ?); 
--#EOBLK 

--#BGBLK後的數字指示db2batch執行塊中的語句5次。

你的參數文件(stmts.data)是這樣的(本實施例中爲存儲的過程,其中第一個參數存儲過程是INT,第二個參數是一個VARCHAR(15),又都是IN參數):

1 'First' 
2 'Second' 
3 'Third' 
4 'Fourth' 
5 'Fifth' 
6 'Sixth' 
7 'Seventh' 
8 'Eighth' 
9 'Ninth' 
10 'Tenth' 

該文件中有10對參數,但由於--#BGBLK標識符指定的重複計數僅爲5,因此db2batch將只讀取參數文件中的前5行。如果您指定的重複次數大於參數文件中的行數,那麼對於沒有參數文件中對應值的重複,您將得到錯誤。

**注意:db2batch將在具有IN參數的過程中工作,甚至會處理返回結果集的存儲過程,但我不知道如何使它與使用存儲過程的存儲過程一起工作OUT參數。

+0

Thansk Ian這是非常有幫助的,我們在每個存儲過程中都使用那些輸出參數時感到羞恥:( – sapatos

+0

我對OUT參數有一個破解,只要類型是相同的對我來說可以 – sapatos

+0

@sapatos你可以澄清「類型是相同的」嗎?對於INOUT參數還是純粹的OUT參數? –

相關問題