次のSQL*Plusスクリプト
WHENEVER OSERROR EXIT FAILURE
WHENEVER SQLERROR EXIT FAILURE
DECLARE
EXIST_INDEXES BOOLEAN := FALSE;
BEGIN
FOR INDEX IN (SELECT * FROM INDEXES)
LOOP
EXIST_INDEXES := TRUE;
DBMS_OUTPUT.PUT_LINE(INDEX.SCHEMA || '.' || INDEX.NAME);
END LOOP;
IF EXIST_INDEXES THEN
RAISE_APPLICATION_ERROR(-20000,'Before proceeding, it is recommended to drop the indexes listed above');
END IF;
END;
-- Here go SQL statements that should be executed if no indexes were found
テーブル/ビューのINDEXESにエントリがある場合、この出力を生成します。
SCHEMA_1.INDEX_1
DECLARE
*
ERROR at line 1:
ORA-20000: Before proceeding, it is recommended to drop the indexes listed above
ORA-06512: at line 13
テーブル/ビューINDEXESにエントリがある場合、次の方法を実行します。
DECLARE
および行*
がスクリプト出力に表示されないようにします。- PL/SQLブロックの後のSQL文の実行をスキップします。
- スクリプトはゼロ以外のコードを返しますか?