0

我正在编写一个 DB2 SQL 代码。

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

谁能告诉我为什么会这样?如果可能的话,如果您可以分享 DB2 select into 和动态 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;
4

0 回答 0