当前位置: 首页 > 知识库问答 >
问题:

在创建IBM db2过程时,我收到以下错误消息

巢星纬
2023-03-14
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 

SQL错误[42601]:在“”后面发现意外标记“(标签CHAR(30),值VARCHAR(1))”。所需的标记可能包括:“E@DateType TABLE”..SQLCODE=-104,SQLSTATE=42601,Driver=4.21.29

共有1个答案

酆浩邈
2023-03-14

如果DB2 it is(db2-400或db2-luw)声明xx表不是DB2 SQL PL语法

顺便说一句,如果我理解得很好,您的代码可以替换为视图

CREATE OR REPLACE VIEW DATETYPE (LABEL, VALUE) as (
    VALUES 
    ('Paid Dates Only', 'P'),
    ('Incurred Dates with Paid', 'S')
)

编辑:既然它必须是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
 类似资料: