2013-03-11 52 views
1

我按照這個例子來調用和使用Groovy從過程返回參數:http://groovy.codehaus.org/Database+features如何使用返回從程序進行參數常規

在部分存儲過程支持有沒有例如如何調用了過程 我試試這個但產量仍空

sql.call(GString.EMPTY + "{call " + schema + "." + name + "($par1,$par2)}"){ output -> println output } 

UPDATE:

中如果PAR1 == null,則它帶到新條目我的情況

(這是「我們的參數」的原因),所以我創造了這樣的事情:

if (par1 == null) { 
     sql.call(GString.EMPTY + "{call " + schema + "." + name + "(${Sql.VARCHAR},$par2)}"){ output_par1 -> println "par1: " + output_par1 } 
    } else { 
     sql.call(GString.EMPTY + "{call " + schema + "." + name + "($par1,$par2)}"){} 
     println "par1: " + par1 
    } 

因此,如果par1爲null,則過程會生成新值,然後是println,如果par1不爲null,那麼只需println它。這適用於我,但如果有人想返回參數不是null,那麼我仍然不知道如何寫它。

UPDATE

真的沒事嗎?與賞金7天后?我應該多加點

+0

什麼輸出爲空? – 2013-03-11 12:49:20

+0

println輸出返回null – hudi 2013-03-11 12:49:46

+0

您使用的是什麼dbms? – Ben 2013-03-11 13:26:39

回答

0

問題在別處。 你有一個語法錯誤的位置:

sql.call(GString.EMPTY + "{call " + schema + "." + name + "($par1,$par2)}") 

字符串內的通話將被永遠不會滿足,因爲你之前沒有{$。相反,你的參數在他們之前沒有任何意義。

sql.call(GString.EMPTY + "${call " + schema + "." + name + "(par1,par2)}") 

是正確的。

與其他代碼行相同。

相關問題