SQLスクリプト・ジョブの処理

SQLスクリプト・ジョブでは、パラメータ・ページの「SQLスクリプト」フィールドで次のいずれかを指定できます。

ターゲット・プロパティは、「SQLスクリプト」フィールドで使用できます。「使用可能なターゲットのプロパティを表示」をクリックして、ターゲットに使用できるプロパティを表示できます。ターゲット・プロパティの大文字と小文字は区別されます。

SQL*Plusのオプション・パラメータを「パラメータ」フィールドに入力できます。

SQLスクリプト・ジョブからエラー・コードを返す

SQLスクリプト・ジョブは、内部的にSQL*Plusを使用して、ユーザーのSQLまたはPL/SQLスクリプトを実行します。SQL*Plusが0を返す場合、ジョブは「成功」のステータスを返します。その他の値を返す場合は、「失敗」のジョブ・ステータス値を返します。

デフォルトでは、SQLスクリプトを実行し、エラーが発生した場合も、SQL*Plusが値0を返すため、ジョブ・ステータスが「成功」になることがあります。このようなジョブで「失敗」ステータスを返すために、SQL*PlusのEXITを使用してゼロ以外の値を返すことができます。

次の例では、PL/SQLまたはSQLスクリプトから値を返す方法を示します。これらの値は、SQL*Plusの戻り値として使用されるため、適切なジョブ・ステータス(「成功」または「失敗」)を返す方法が提供されます。EXITコードを返す方法の詳細は、SQL*Plusユーザーズ・ガイドおよびリファレンスを参照してください。

例1

WHENEVER SQLERROR EXIT SQL.SQLCODE
select column_does_not_exist from dual;

例2

-- SQL*Plus will NOT return an error for the next SELECT statement
SELECT COLUMN_DOES_NOT_EXIST FROM DUAL;

WHENEVER SQLERROR EXIT SQL.SQLCODE;
BEGIN
-- SQL*Plus will return an error at this point
SELECT COLUMN_DOES_NOT_EXIST FROM DUAL;
END; /
WHENEVER SQLERROR CONTINUE;

例3

variable exit_code number;


BEGIN
DECLARE
local_empno number(5);
BEGIN
-- do some work which will raise exception: no_data_found
SELECT 123 INTO local_empno FROM sys.dual WHERE 1=2;
EXCEPTION
WHEN no_data_found THEN
:exit_code := 10;
WHEN others THEN
:exit_code := 2;
END;
END;
/ exit :exit_code;

例4

-- interactive mode only
col test new_value bye SELECT 123 test
FROM dual; exit &bye;

SQLスクリプト・ジョブのターゲットの指定

SQLスクリプト・ジョブは、データベースおよびクラスタ・データベースのターゲット・タイプに対して実行できます。ジョブを実行するターゲットを選択するには、「データベース」セクションの「追加」をクリックします。ターゲットの追加ページが表示されます。ジョブの実行対象のデータベース・ターゲットの選択の詳細は、ターゲットの追加ページの「ヘルプ」をクリックします。

SQLスクリプト・ジョブのホスト資格証明およびデータベース資格証明の指定

「ホスト資格証明およびデータベース資格証明」セクションで、ホスト資格証明およびデータベース資格証明を指定します。ホスト資格証明は、管理エージェントがSQL*Plus実行可能ファイルを起動するために使用します。データベース資格証明は、ターゲット・データベースへの接続とSQLスクリプトの実行に使用されます。ジョブでは、ホストとデータベースの優先資格証明を使用することも、優先資格証明を上書きする他の資格証明を指定することもできます。

SQLスクリプト・ジョブのターゲットに対して優先資格証明を使用する場合は、「優先資格証明の使用」をクリックし、「資格証明のタイプ」フィールドで「標準」または「権限」を選択します。ホストとデータベースの両方に使用される資格証明は、「データベース: 優先資格証明」で指定した資格証明です。「標準」を選択すると標準のデータベース優先資格証明が使用され、「権限」を選択するとSYSDBA優先資格証明が使用されます。どちらの場合も、データベース・ターゲットに関連付けられているホスト資格証明が使用されます。ジョブが実行されるたびに、優先資格証明の現在の値が取得されます。

すべてのターゲットについて優先資格証明を上書きするには、「優先資格証明の上書き」をクリックしてから、すべてのターゲットでジョブが使用する優先資格証明を入力します。

データベースの優先資格証明を表示するには、「優先資格証明の表示」をクリックして優先資格証明ページを表示(ジョブの作成ページに戻りやすくするため、リンクを右クリックして新しいウィンドウで開きます)してから、データベースに対する「資格証明の設定」アイコンをクリックして、データベースおよび関連するホストの優先資格証明を表示します。Enterprise Managerで、データベース: 優先資格証明ページが表示されます。データベースの優先資格証明の詳細は、データベース: 優先資格証明ページの「ヘルプ」をクリックしてください。

関連トピック

ジョブの実行処理と実行

ジョブ・ステータス

ジョブ・タイプ

ジョブについて

ブラックアウトについて

ステップ

ジョブのパージ・ポリシー

ジョブの作成および編集

ジョブの削除

ジョブ・リストのフィルタ

単一および複数実行処理の実行

ジョブ結果の表示

マルチタスク・ジョブの処理

OSコマンド・ジョブの処理

SQLスクリプト・ジョブの処理

Enterprise Managerの情報ロードマップ