首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >意外标记“<变量declaration>”出现在"“之后。

意外标记“<变量declaration>”出现在"“之后。
EN

Stack Overflow用户
提问于 2019-12-25 10:24:49
回答 1查看 1.2K关注 0票数 0

我是DB2的新手。I试图将此sp从Microsoft服务器转换为DB2这里是Microsoft中的sp:

代码语言:javascript
复制
    DECLARE @DELIMITER VARCHAR(1) =','
    DECLARE  @FILTER_TYPE VARCHAR(128) ='Animal_ID_17'
    DROP TABLE IF EXISTS #tmp_Inputs
    CREATE TABLE #tmp_Inputs
    (
     INPUT_VALUE VARCHAR(128)
    )

    INSERT INTO #tmp_Inputs(INPUT_VALUE)
    SELECT COL1 FROM [dbo].[fn_Split_String](@INPUT_VALUE,@DELIMITER)


    DROP TABLE IF EXISTS #tmp_Animals
    CREATE TABLE #tmp_Animals
    (
     ANIMAL_ID VARCHAR(128)
    )

    IF @FILTER_TYPE ='Animal_Id_17'
    BEGIN
       INSERT INTO #tmp_Animals
       (
           ANIMAL_ID
       )
       SELECT a.ANIMAL_ID
       FROM #tmp_Inputs t
       INNER JOIN ANIMALS a ON t.INPUT_VALUE = a.ANIMAL_ID
    END 

    SELECT * FROM #tmp_Animals
    ORDER BY ANIMAL_ID

这是我转换成DB2后的sp

代码语言:javascript
复制
DECLARE @FILTER_TYPE VARCHAR(128);
    SET @FILTER_TYPE = 'Animal_ID_17';
    DECLARE @DELIMITER VARCHAR(3);
    SET @DELIMITER = ',';

    DECLARE GLOBAL TEMPORARY TABLE Input_EMP
    (   
        INPUT_VALUE VARCHAR(128)

    );

    INSERT INTO Input_EMP(INPUT_VALUE)
    SELECT COL1 FROM fn_Split_String @INPUT_VALUE,@DELIMITER;

    DECLARE GLOBAL TEMPORARY TABLE Animals_EMP
    (
        ANIMAL_ID VARCHAR(128)
    );

    IF @FILTER_TYPE ='Animal_Id_17' THEN
        INSERT INTO Animals_EMP
        (
            ANIMAL_ID
        )
        SELECT a.ANIMAL_ID
        FROM Input_EMP a
        JOIN ANIMALS n on a.INPUT_VALUE = n.ANIMAL_ID;
    END IF;

    DECLARE cursor1 CURSOR WITH RETURN for

    SELECT ANIMAL_ID
    FROM Animals_EMP
    ORDER BY ANIMAL_ID;

    OPEN cursor1;

然后,我得到了一个错误:--一个意外的标记"“在”后面“找到。预期的令牌可能包括:“”。SQLCODE=-104,SQLSTATE=42601,DRIVER=4.19.56

有人知道如何解决这个错误吗。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-25 22:30:52

包含存储过程主体的Db2 复合SQL语句要求DECLARE语句先于任何可执行语句,并遵循定义良好的顺序,如链接文档所示。在您的代码中,它们分散在各处,这就是错误消息试图告诉您的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59477438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档