
シェルからsqlplusを実行し、そのsqlplusで発生したエラーをハンドリングするために、
出力内容をORACLEエラーコード(ORA-xxxxx)、SQLPLUSエラーコード(SP2-xxxxx)
で検索して判定しています。
また、SQLで何らかのエラーが発生した際に処理を終了させるために、
SQL実行前に
whenever sqlerror exit;
whenever oserror exit;
を定義しています。
何らかのエラーが発生した際は、ORACLEエラーコード(ORA-xxxxx)、SQLPLUSエラーコード(SP2-xxxxx)
が出力されるため、エラーハンドリングは可能と考えているのですが、
sqlplusのstartコマンドでsqlファイルを実行した場合のみ、エラーコードが出
力されないため、ハンドリングできません。
■実行例
SQL> start 存在しないsqlファイル
O/Sメッセージ:No such file or directory
切断しました。
試しにwhenever oserror exit;の記述を削除したところ
SP2-0130が出力されエラーハンドリングできました。
whenever oserror exit;
の記述があるとエラーコードが出力されないのはなぜでしょうか??
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんにちは。
>spoolコマンドで試してみたところ
whenever oserrorが定義されていても
SP2-0322
のメッセージは出力されるのです。。
えーと・・・、「SP2-00332」じゃなくて?
コマンド実行後です・・・。
ついでに、
>SP2-0130
「SP2-00310」じゃなくて?
この回答への補足
すみません、ご指摘のとおりです。
whenever oserrorが定義されていても出力されるメッセージ
SP2-00332 スプール・ファイルを作成できません。
whenever oserrorが定義されていたら出力されないメッセージ
SP2-00310 ファイルfile_nameをオープンできません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
シェルスクリプトでオラクルのエラーメッセージを取得するには
Oracle
-
バッチからsqlplusの接続エラーの検知について
その他(プログラミング・Web制作)
-
PL/SQLでSPOOLさせたいのですが、可能でしょうか?
Oracle
-
-
4
PL/SQLで@ファイル名が反応しません
Oracle
-
5
SQLPLUSで結果を画面に表示しない
Oracle
-
6
Oracleでの文字列連結サイズの上限
Oracle
-
7
SQL*Plusで、コマンドの返答を非表示にする方法
Oracle
-
8
エラーコード取得
Oracle
-
9
バッチファイルを使用したsql@plusの実行及びログ出力について
Oracle
-
10
OracleのSQL*PLUSで、データが折り返されて見づらいのですが。。。
その他(データベース)
-
11
コマンドプロンプトによるフォルダ内のファイル存在有無
UNIX・Linux
-
12
エラーを起こす方法
Oracle
-
13
SPOOL出力先のフォルダにSpaceがある時
Oracle
-
14
selectした結果の余計な余白を取るにはどうしたらよいのでしょうか
Oracle
-
15
不明なコマンドです(FROM")。行の残りは無視されました。 のエラー"
Oracle
-
16
Oracleのデータ型、NUMBERについて
その他(データベース)
-
17
SQLで特定の項目の重複のみを排除した全項目を取得する方法
その他(プログラミング・Web制作)
-
18
動的にSPOOLファイルのファイル名を生成したい
Oracle
-
19
SQL Plusで項目名が最後まで表示されない?
Oracle
-
20
sqlplusの処理が途中でとまる
Oracle
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CASE文のエラーについて
-
ORA-01013のエラーについて経験...
-
PCC-S-02201エラーの対処を教え...
-
ORA-01843: 指定した月が無効で...
-
DATABSE LINKについて
-
独自 TYPE 定義した表への IMPORT
-
正規表現を使用したCHECK制約
-
エラーコード取得
-
PL/SQL PLS-00103エラーについて
-
PL/SQLのコンパイルエラーにつ...
-
Oracleのエクスポートでエラー
-
PL-SQLでORA-01013エラー
-
HAVING句でのBETWEEN演算子
-
【PL/SQL】SQL文が長すぎてSELE...
-
はじめまして!
-
無効なSQL文の具体例を教えてく...
-
データーベースリンク
-
SQLで日付+時間で絞り込みたい
-
「ORA-00907: 右カッコがありま...
-
PL/SQL ストアドプロシージャ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ORA-01013のエラーについて経験...
-
CASE文のエラーについて
-
PL/SQL PLS-00103エラーについて
-
ORA-01843: 指定した月が無効で...
-
はじめまして!
-
PCC-S-02201エラーの対処を教え...
-
シェルスクリプトでオラクルの...
-
「ORA-00907: 右カッコがありま...
-
データベースのカラムの型がCHA...
-
ORA-06502のエラー
-
無効なSQL文の具体例を教えてく...
-
PL/SQLのコンパイルエラーにつ...
-
ACCESSでパススルークエリにパ...
-
pro*c で pl/sql に変数を渡す...
-
SQLLOADER
-
HAVING句でのBETWEEN演算子
-
PL/SQLによるCREATE TABLE後のI...
-
DATABSE LINKについて
-
sqlのエラーハンドリングについ...
-
ビューが作成できない
おすすめ情報