Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Можно ли в ASE с помощью execute присвоить переменной результат SQL-запроса? / 3 сообщений из 3, страница 1 из 1
28.03.2005, 12:26
    #32983587
BrutSpark
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в ASE с помощью execute присвоить переменной результат SQL-запроса?
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
28.03.2005, 13:06
    #32983693
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в ASE с помощью execute присвоить переменной результат SQL-запроса?
Нет, так нельзя делать. Дело в том, что переменные видны только в пределах батча или процедуры, в которых они объявлены. А то, что выполняется с помощью 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
31.03.2005, 15:53
    #32991428
wados
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в ASE с помощью execute присвоить переменной результат SQL-запроса?
у меня такая беда работает через Execute immediate 'select count(*) into @Variable from Table'
а в общем можно так: select count(*) into #tmp from Table;
select #tmp
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Можно ли в ASE с помощью execute присвоить переменной результат SQL-запроса? / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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