Почему этот оператор извлечения Sybase не работает? - PullRequest
0 голосов
/ 07 апреля 2011
declare @coltype char(60)
declare @cname char(60)
declare col_crsr cursor for SELECT cname,coltype from sys.syscolumns
                             where tname = 'abmc_customer_user'
                               for update of cname
set cursor rows 4 for col_crsr
open col_crsr
fetch col_crsr
close col_crsr
deallocate cursor col_crsr

В этом случае после выполнения выборки должны отображаться строки, но отображается время выполнения: 0,0031 с. Что не так?

Ответы [ 2 ]

0 голосов
/ 20 октября 2011

Вы можете попробовать это таким образом, чтобы пройти курсором и извлечь значения в ваши переменные, а затем ВЫБЕРИТЕ переменные ...

Declare @coltype char (60)

Declare @cname char (60)

объявить курсор col_crsr для SELECT cname, coltype из sys.syscolumns где tname = 'abmc_customer_user' для обновления cname

установить строки курсора 4 для col_crsr

open col_crsr WITH HOLD

получить col_crsr INTO @ coltype, @ cname

WHILE (@@ sqlstatus = 0)

НАЧАТЬ

ВЫБРАТЬ @coltype,@ cname

FETCH NEXT col_crsr INTO @ coltype, @ cname

END

close col_crsr

освободить курсор col_crsr

0 голосов
/ 07 апреля 2011

В большинстве диалектов SQL у вас будет цикл вокруг FETCH для получения нескольких строк, и вы также будете указывать, куда должны идти данные (в какие переменные они должны быть извлечены), и вы бынеобходимо предпринять некоторые шаги для отображения данных.

...