我在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”。预期的代币可能包括:“FOR”。 LINE NUMBER = 20。 SQLSTATE = 42601
我使用的Db2版本是9.5。
请告诉我如何创建静态游标。
答案 0 :(得分:2)
我假设你在SP中声明了光标。以下是相同的语法:
>>-DECLARE--cursor-name--CURSOR--+-----------+------------------>
'-WITH HOLD-'
>--+----------------------------+--FOR--+-select-statement-+---><
| .-TO CALLER-. | '-statement-name---'
'-WITH RETURN--+-----------+-'
'-TO CLIENT-'
为什么指定了SENSITIVE STATIC SCROLL?有特定要求吗?
只有在CLI应用程序中声明游标时才可以指定SENSITIVE STATIC SCROLL,在这种情况下,声明在EXEC SQL stmt之前:
EXEC SQL DECLARE C2 SENSITIVE STATIC SCROLL CURSOR FOR
SELECT DEPTNO, DEPTNAME, MGRNO
FROM DSN8910.DEPT
ORDER BY DEPTNO
END-EXEC