Эквивалентно sp_executesql в Sybase - PullRequest
2 голосов
/ 15 апреля 2011

Что эквивалентно sp_executesql Sql Server в sybase.

Ответы [ 3 ]

2 голосов
/ 15 апреля 2011
1 голос
/ 25 июня 2014

@ jasir: ограничение до 255 символов является результатом определения вашей процедуры. Невозможно продлить этот лимит путем определения, например, VARCHAR (1024)

ASE Справочное руководство 15.7 (http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc36272.1572/html/commands/X30305.htm) состояния для выполнения команды:

строка является литеральной строкой, содержащей часть команды Transact-SQL выполнить. Там нет ограничений на количество символов поставляется с буквенной строкой.

Однако иногда система поверх Sybase (например, Kondor +, продукт для финансовых рынков использует ASE 15.x в качестве DB) может устанавливать ограничения. В этом Kondor + невозможно использовать

exec( @SQLQuery) 

в его так называемом OpenReport (хранимая процедура), если переменная @SQLQuery превышает 256 символов.

0 голосов
/ 12 мая 2012

Для более старых ASE вы можете использовать этот обходной путь:

Существует хранимая процедура sp_remotesql .Вы также можете использовать его для выполнения запросов на локальном сервере, вам просто нужно подключить локальный сервер к серверам:

sp_addserver local, NULL, <servername>

Где <servername> - имя локального сервера (из sql.ini).

Вы можете добавить ярлык для запуска sql:

create procedure sp_exec_dynsql @p_cmd varchar(255)
as
begin
   exec sp_remotesql "local", @p_cmd
end

К сожалению, в вашем sql ограничено 255 символов.

...