powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Можно ли в ASE с помощью execute присвоить переменной результат SQL-запроса?
3 сообщений из 3, страница 1 из 1
Можно ли в ASE с помощью execute присвоить переменной результат SQL-запроса?
    #32983587
BrutSpark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ASE 12.5
Хочу считать кол-во строк в произвольной таблице в переменную:

declare @tname varchar(50)
declare @NumCount int
select @tname='Acounts'
execute ('select count(*) from ' + @tname) - сам SQL работает

Как считать рез-т его выполнения в переменную?

Так - не работает
select @NumCount=execute ('select count(*) from ' + @tname)

И так - не работает
execute ('select @NumCount=count(*) from ' + @tname)

Вообще можно это сделать с помощью execute?
...
Рейтинг: 0 / 0
Можно ли в ASE с помощью execute присвоить переменной результат SQL-запроса?
    #32983693
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, так нельзя делать. Дело в том, что переменные видны только в пределах батча или процедуры, в которых они объявлены. А то, что выполняется с помощью EXEC(), является отдельным батчем.
Поэтому чтобы так сделать нужно использовать один из вариантов :
Использовать временную или постоянную таблицу для возвращения данных,
например :
Код: plaintext
1.
2.
3.
4.
declare @tname varchar( 50 ), @NumCount int
select @tname='Acounts'
execute ('insert into SOMETABLE (cnt) select count(*) from ' + @tname)
select @NumCount = cnt from SOMETABLE
Естественно, при этом надо думать о том, как это будет работать в многопользовательской среде.

Реализовать это в процедуре и использовать прокси-таблицу для возвращения данных (см. CIS).
...
Рейтинг: 0 / 0
Можно ли в ASE с помощью execute присвоить переменной результат SQL-запроса?
    #32991428
wados
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня такая беда работает через Execute immediate 'select count(*) into @Variable from Table'
а в общем можно так: select count(*) into #tmp from Table;
select #tmp
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Можно ли в ASE с помощью execute присвоить переменной результат SQL-запроса?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]