Как создать статический курсор в DB2? - PullRequest
0 голосов
/ 22 сентября 2009

Я столкнулся с проблемой при создании статического курсора в DB2. Это утверждение, которое я использовал в своем SP.

DECLARE CURNAME SENSITIVE STATIC SCROLL CURSOR FOR 
        SELECT COL1, COL2 
        FROM SCH.TABLENA 
        ORDER BY COL1;

при компиляции написано: Ошибка базы данных DB2: ОШИБКА [42601] [IBM] [DB2 / NT] SQL0104N Неожиданный токен «SENSITIVE» обнаружен после «». Ожидаемые токены могут включать: «ЗА». НОМЕР ЛИНИИ = 20. SQLSTATE = 42601

Используемая мной версия Db2 - 9.5.

Пожалуйста, дайте мне знать, как создать статический курсор.

1 Ответ

2 голосов
/ 22 октября 2009

Я предполагаю, что вы объявляете курсор в SP. Вот синтаксис для того же:

>>-DECLARE--cursor-name--CURSOR--+-----------+------------------>
                                 '-WITH HOLD-'

>--+----------------------------+--FOR--+-select-statement-+---><
   |              .-TO CALLER-. |       '-statement-name---'
   '-WITH RETURN--+-----------+-'
                  '-TO CLIENT-'

Почему вы указали ЧУВСТВИТЕЛЬНЫЙ СТАТИЧЕСКИЙ СВИТОК? Есть ли особые требования?

Вы можете указать SENSITIVE STATIC SCROLL, только когда вы объявляете курсор в приложении CLI, в этом случае объявлению предшествует EXEC SQL stmt:

EXEC SQL DECLARE C2 SENSITIVE STATIC SCROLL CURSOR FOR
  SELECT DEPTNO, DEPTNAME, MGRNO
  FROM DSN8910.DEPT
  ORDER BY DEPTNO
END-EXEC
...