2013-05-29 119 views
2

晚安在我的時區。調用存儲過程

我使用Sybase ASE 15,和我有兩個輸入參數都VARCHAR的存儲過程,基本上是在存儲過程中我使用動態SQL,這樣的事情:

@cmd = 'select * from TABLE where COL IN'[email protected]+'AND [email protected] 
EXEC(@cmd) 

我打電話使用此過程JDBC像這樣:

CallableStatement stmt = conn.prepareCall("{call MyStoredProcedure(?,?)}"); 

stmt.setString(1, "'''0'',''1'''"); 
stmt.setString(2, '''fr'''); 
stmt.executeQuery(); 

它引發錯誤,通知該調用格式錯誤。

但是,如果我在IDE中直接運行調用是這樣的:

EXEC MyStoredProcedure'''0'',''1'',''2'',''3'',''4'',''5'',''6'',''7''','''fr''' 

它運行沒有任何問題,所以我想有一些問題與字符轉義我猜。

任何人都遇到過這個問題?

隨着問候

在此先感謝

+0

儘管在第一個參數中,我只是在數據庫中使用整數,但它們被定義爲VARCHAR,這就是爲什麼我使用引號 – tt0686

回答