私のタイムゾーンでおやすみなさい。
私はSybase ase 15を使用しています.2つの入力パラメータ両方を持つストアドプロシージャがありますVARCHAR
.基本的にストアドプロシージャ内では動的SQLを使用しています.
@cmd = 'select * from TABLE where COL IN'+@PARAM1+'AND COL2=@PARAM2
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'''
それは問題なく実行されるので、文字のエスケープに問題があると思います。
誰でもこの問題を経験しましたか?
どうぞよろしくお願いします
前もって感謝します