Спокойной ночи в моем часовом поясе.
Я использую 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'''
Он работает без проблем, поэтому я предполагаю, что есть какая-то проблема с экранированием персонажа, я думаю.
Кто-нибудь сталкивался с этой проблемой?
С наилучшими пожеланиями
заранее спасибо