在存储过程里想取某个序列的下个值,存储过程编译报错,举个最简单的例子如下:
CREATE SEQUENCE SAMPSEQUENCE
AS BIGINT
START WITH 1
INCREMENT BY 1
MAXVALUE 9223372036854775807
MINVALUE 1
NO CYCLE
NO ORDER
CACHE 20;
CREATE OR REPLACE PROCEDURE test (OUT recid INT)
BEGIN
SET recid=nextval FOR SAMPSEQUENCE;
END;
先建一个测试序列,然后建一个测试存储过程,编译,报错。
SQL0104N 在 "BEGIN-OF-STATEMENT" 后面找到异常标记 "CREATE OR REPLACE PROCEDURE TES"。预期标记可能包括:""。 LINE NUMBER=6. SQLSTATE=42601
序列是存在的,不管用values inot,还是set=(select..from..),都一样报错,db2版本是V10.5,平台是AIX,自己本机win7装了express也不能执行上面的测试语句,上面那段发给其他人可以执行无误,求解决方案。
收起