创建 IBM db2 过程时出现以下错误消息
I am getting following Error message while creating IBM db2 procedure
下面的代码有什么问题?
PROCEDURE DATETYPE DYNAMIC RESULT SETS 1 LANGUAGE SQL
BEGIN
DECLARE @DateType TABLE
( LABEL CHAR(30) ,
Value VARCHAR(1) );
DECLARE C CURSOR WITH RETURN FOR;
INSERT
INTO
@DateType
VALUES ('Paid Dates Only',
'P') INSERT
INTO
@DateType
VALUES('Incurred Dates with Paid',
'S') SELECT
*
FROM
@DateType;
OPEN C;
END
我正在使用 db2 并收到以下错误:
SQL Error [42601]: An unexpected token "( LABEL CHAR(30) , Value VARCHAR(1) )" was found following " ". Expected tokens may include: "E @DateType TABLE ".. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.21.29
无论是 DB2(db2-400 还是 db2-luw)DECLARE xx TABLE
不是 DB2 SQL PL 语法
顺便说一句,如果我理解得很好,你的代码可以用视图替换
CREATE OR REPLACE VIEW DATETYPE (LABEL, VALUE) as (
VALUES
('Paid Dates Only', 'P'),
('Incurred Dates with Paid', 'S')
)
edit:既然必须是prodecure,那你就可以用
CREATE OR REPLACE PROCEDURE DATETYPE ()
RESULT SETS 1
LANGUAGE SQL
BEGIN
DECLARE DATAS CURSOR WITH RETURN FOR
VALUES
('Paid Dates Only', 'P'),
('Incurred Dates with Paid', 'S');
OPEN DATAS;
END
下面的代码有什么问题?
PROCEDURE DATETYPE DYNAMIC RESULT SETS 1 LANGUAGE SQL
BEGIN
DECLARE @DateType TABLE
( LABEL CHAR(30) ,
Value VARCHAR(1) );
DECLARE C CURSOR WITH RETURN FOR;
INSERT
INTO
@DateType
VALUES ('Paid Dates Only',
'P') INSERT
INTO
@DateType
VALUES('Incurred Dates with Paid',
'S') SELECT
*
FROM
@DateType;
OPEN C;
END
我正在使用 db2 并收到以下错误:
SQL Error [42601]: An unexpected token "( LABEL CHAR(30) , Value VARCHAR(1) )" was found following " ". Expected tokens may include: "E @DateType TABLE ".. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.21.29
无论是 DB2(db2-400 还是 db2-luw)DECLARE xx TABLE
不是 DB2 SQL PL 语法
顺便说一句,如果我理解得很好,你的代码可以用视图替换
CREATE OR REPLACE VIEW DATETYPE (LABEL, VALUE) as (
VALUES
('Paid Dates Only', 'P'),
('Incurred Dates with Paid', 'S')
)
edit:既然必须是prodecure,那你就可以用
CREATE OR REPLACE PROCEDURE DATETYPE ()
RESULT SETS 1
LANGUAGE SQL
BEGIN
DECLARE DATAS CURSOR WITH RETURN FOR
VALUES
('Paid Dates Only', 'P'),
('Incurred Dates with Paid', 'S');
OPEN DATAS;
END