Oracleデータベース
set serveroutput on;・・・(1) DECLARE v_col1 CHAR(20); v_col2 INTEGER; CURSOR c1 IS SELECT col1, col2 FROM t1; BEGIN DBMS_OUTPUT.PUT_LINE('-- BATCH_001 Start --'); OPEN c1; DBMS_OUTPUT.PUT_LINE('-- LOOP Start --'); LOOP FETCH c1 INTO v_col1, v_col2; EXIT WHEN c1%NOTFOUND; DBMS_OUTPUT.PUT('.'); END LOOP; DBMS_OUTPUT.NEW_LINE;・・・(2) DBMS_OUTPUT.PUT_LINE('-- LOOP End --'); CLOSE c1; DBMS_OUTPUT.PUT_LINE('-- BATCH_001 End --'); EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('-- SQL Error --'); DBMS_OUTPUT.PUT_LINE('ERROR : ' || SQLERRM ); END; /
FUJITSU Enterprise Postgres
DO $$ DECLARE v_col1 CHAR(20); v_col2 INTEGER; c1 CURSOR FOR SELECT col1, col2 FROM t1; BEGIN PERFORM DBMS_OUTPUT.SERVEROUTPUT(TRUE);・・・(1) PERFORM DBMS_OUTPUT.ENABLE(NULL);・・・(1) PERFORM DBMS_OUTPUT.PUT_LINE('-- BATCH_001 Start --'); OPEN c1; PERFORM DBMS_OUTPUT.PUT_LINE('-- LOOP Start --'); LOOP FETCH c1 INTO v_col1, v_col2; EXIT WHEN FOUND = false; PERFORM DBMS_OUTPUT.PUT('.'); END LOOP; PERFORM DBMS_OUTPUT.NEW_LINE(); ・・・(2) PERFORM DBMS_OUTPUT.PUT_LINE('-- LOOP End --'); CLOSE c1; PERFORM DBMS_OUTPUT.PUT_LINE('-- BATCH_001 End --'); EXCEPTION WHEN OTHERS THEN PERFORM DBMS_OUTPUT.PUT_LINE('-- SQL Error --'); PERFORM DBMS_OUTPUT.PUT_LINE('ERROR : ' || SQLERRM ); END; $$ ;
SET文を使用してSERVEROUTPUT ONを指定します。
DBMS_SQL.SERVEROUTPUT(TRUE)を指定します。
以下の手順で移行してください。
ストアドプロシジャのPL/SQLブロックより前にSET SERVEROUTPUT文が指定されているか確認します。
SET SERVEROUTPUT文が指定されている場合は、PL/pgSQLのBEGINの直後にDBMS_SQL.SERVEROUTPUTを指定します。画面に出力するためにONが指定されている場合はTRUEを指定します。OFFが指定されている場合はFALSEを指定します。
SET SERVEROUTPUTがONである場合のみ、追加でDBMS_SQL.ENABLEを指定します。引数に指定する値は以下の通りです。
SET SERVEROUTPUT文にSIZE指定がある場合は、指定されたサイズを引数に指定します。
SET SERVEROUTPUT文にSIZE指定がない場合は、Oracle10.1g以前の場合は2000、Oracle10.2g以降の場合はNULL値を指定します。
補足) ストアドプロシジャのPL/SQLブロックにDBMS_SQL.ENABLEが指定されている場合は、その引数の値に従ってください。
“パッケージ名.機能名”の引数がない場合、括弧を省略することができます。
“パッケージ名.機能名”の引数がない場合でも、括弧を省略できません。
以下の手順で移行してください。
“DBMS_OUTPUT.NEW_LINE”というキーワードでストアドプロシジャ内を検索します。
“パッケージ名.機能名”の後に括弧がない場合は、括弧を追記してください。