Я создаю курсор с помощью оператора select, который вернет 4 значения (18, 13, 14 и 15). Сейчас я пытаюсь перебрать курсор и отобразить значение. Я ожидаю 4 оператора печати, но вижу гораздо больше.
Вот код:
PRINT '***** *****'
GO
DECLARE curs CURSOR FOR
SELECT ID FROM CUSTOMER WHERE SSN LIKE '%1803'
GO
DECLARE @ID int
OPEN curs
FETCH NEXT curs INTO @ID
WHILE @@sqlstatus = 0
BEGIN
PRINT '* current value: %1! ', @ID
FETCH NEXT curs INTO @ID
END
CLOSE curs
DEALLOCATE CURSOR curs
GO
Вот результат:
***** *****
* current value: 18
* current value: 18
* current value: 13
* current value: 18
* current value: 13
* current value: 14
* current value: 18
* current value: 13
* current value: 14
* current value: 15
* current value: 18
* current value: 13
* current value: 14
* current value: 15
Это похоже на простую итерацию курсора, и я не могу понять, почему я вижу так много операторов печати, я хочу видеть только 18, 13, 14 и 15. Я использую Sybase ASE 15.5 и клиент Razor SQL. Может кто-то помочь мне с этим?
* Edit * Я не видел проблемы, когда использовал Sybase Central (для ASE). Результаты были противоречивыми, когда я использовал другие IDE.