【问题标题】:how to create static cursor in db2?如何在 db2 中创建静态游标?
【发布时间】:2009-09-22 11:33:01
【问题描述】:
我在 DB2 中创建静态游标时遇到问题。这是我在我的 SP 中使用的语句。
DECLARE CURNAME SENSITIVE STATIC SCROLL CURSOR FOR
SELECT COL1, COL2
FROM SCH.TABLENA
ORDER BY COL1;
在编译时它说:
DB2 数据库错误:错误 [42601] [IBM][DB2/NT] SQL0104N 在“”之后发现了意外的标记“敏感”。预期的标记可能包括:“FOR”。第 20 行。 SQLSTATE=42601
我使用的 Db2 版本是 9.5。
请告诉我如何创建静态光标。
【问题讨论】:
标签:
sql
stored-procedures
db2
【解决方案1】:
我假设您在 SP 中声明游标。这是相同的语法:
>>-DECLARE--cursor-name--CURSOR--+-----------+------------------>
'-WITH HOLD-'
>--+----------------------------+--FOR--+-select-statement-+---><
| .-TO CALLER-. | '-statement-name---'
'-WITH RETURN--+-----------+-'
'-TO CLIENT-'
为什么要指定敏感静态滚动?有具体要求吗?
只有在 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