db2动态sql与匿名块中的select into子句

时间:2016-01-26 10:45:03

标签: sql db2 dynamic-sql select-into

我正在研究DB2 SQL代码。

我需要从表列表中获取记录数。将使用select从光标中获取表详细信息。 要获取我使用SELECT INTO语句尝试的记录数。由于表名会有所不同,我使用的是动态SQL代码。 我正在分享我一直在尝试的代码片段。 在使用DB2 SELECT INTO和Dynamic SQL组合时,我不太确定语法。我通过以下尝试得到以下错误。

谁能告诉我为什么会这样?如果可能,请欣赏您是否可以共享DB2 select into和dynamic sql的工作代码。

SQL0104N An unexpected token "statmnt2" was found following "SET statmnt2 := 'set ? = (SELECT COD_TIPO_ARQU FROM '||indbn". Expected tokens may include: "".

DECLARE
indbnm                  VARCHAR(30);
intblnm                 VARCHAR(30);
v_errorText             varchar2(50);
statmnt2                VARCHAR(1000);
VAR_COD_TIPO_ARQU       CHAR(1);
stmt1                   STATEMENT;
statmnt2                VARCCHAR2(100);

BEGIN

indbnm := "db2inst5";
intblnm:= "rules";

SET statmnt2 := 'set ? = (SELECT COD_TIPO_ARQU FROM '||indbnm||'.'||intblnm||' FETCH FIRST 1 ROWS ONLY)';
PREPARE stmt1 FROM statmnt2;
EXECUTE stmt1 into VAR_COD_TIPO_ARQU ;


DBMS_OUTPUT.PUT_LINE(VAR_COD_TIPO_ARQU);
    EXCEPTION
    WHEN OTHERS THEN
            v_errorText :=SUBSTR(SQLERRM,1, 1024);
            DBMS_OUTPUT.PUT_LINE('FAILED WITH MESSAGE: '||v_errorText);

END;

0 个答案:

没有答案