在我的时区晚安。
我使用的是 Sybase ase 15,并且我有一个带有两个输入参数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'''
它运行没有任何问题,所以我猜我猜字符转义存在一些问题。
有人遇到过这个问题吗?
致以最诚挚的问候
提前致谢