如何解决创建IBM db2过程时出现以下错误消息
以下代码有什么问题?
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错误[42601]:在“”之后发现意外的标记“(LABEL CHAR(30),Value VARCHAR(1))”。预期的令牌可能包括:“ 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')
)
编辑:因为它必须是程序,所以您可以使用
CREATE OR REPLACE PROCEDURE DATETYPE ()
RESULT SETS 1
LANGUAGE SQL
BEGIN
DECLARE DATAS CURSOR WITH RETURN FOR
VALUES
('Paid Dates Only','S');
OPEN DATAS;
END
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。