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”というキーワードでストアドプロシジャ内を検索します。
“パッケージ名.機能名”の後に括弧がない場合は、括弧を追記してください。