我正在研究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;