DB2 SQL コードに取り組んでいます。
テーブルのリストからレコードの数を取得する必要があります。テーブルの詳細は、select を使用してカーソルから取得されます。SELECT INTO
レコードの数を取得するために、ステートメントで試してきました。テーブル名はさまざまであるため、動的 SQL コードを使用しています。私が試してきたコードを共有しています。SELECT INTO
DB2と動的 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;