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