我正在编写一个 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;