シェルから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.1
- 回答日時:
こんにちは。
そりゃまぁ、OSが先にファイルを探しに行ってエラーになってるので、
コマンド自体が実行されていないからです・・・はい。
この回答への補足
taka451213様
説明不足で大変申し訳ありません。。
spoolコマンドで試してみたところ
whenever oserrorが定義されていても
SP2-0322
のメッセージは出力されるのです。。
start(@)コマンドだけ何か特別なのでしょうか??
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で質問しましょう!
似たような質問が見つかりました
- MySQL #1062 - '0' は索引 'PRIMARY' で重複しています。とでています。 1 2023/01/01 06:13
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
- その他(パソコン・スマホ・電化製品) 現在、Q-SL2を使用しています。Q-H1を接続しようとすると本体ソフトウェア確認中にエラーが発生し 1 2023/03/04 23:14
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- Windows 10 Windows 11の累積更新プログラム KB5016629 がインストール出来ない。 2 2022/08/16 12:23
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Excel(エクセル) EXCELの「接続」のSQLのコマンド文字列にて、セルから任意の数値を利用したい 2 2023/03/09 16:43
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- PHP プログラムコードを入力する場合改行してもいいですか? 2 2022/10/02 16:05
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
バッチからsqlplusの接続エラーの検知について
その他(プログラミング・Web制作)
-
シェルスクリプトでオラクルのエラーメッセージを取得するには
Oracle
-
PL/SQLで@ファイル名が反応しません
Oracle
-
-
4
oracle spool SJIS → UTF-8
Oracle
-
5
SQL*Plusの終了はquit?exit?
Oracle
-
6
SQLローダーCSV取込で、囲み文字がデータ中に入っている場合について
Oracle
-
7
PL/SQLをWindowsのBATファイルで実行するには
Oracle
-
8
バッチファイルを使用したsql@plusの実行及びログ出力について
Oracle
-
9
SQL*Loaderでのsysdate使用
Oracle
-
10
SQLPLUSで結果を画面に表示しない
Oracle
-
11
batファイルでのSQL(oracle)実行エラーについて
Oracle
-
12
SQL*LoaderでCSVから指定した列のみインポートしたい。
Oracle
-
13
SQL Plusで項目名が最後まで表示されない?
Oracle
-
14
oracleの文字コードとlinuxサーバの文字コードが異なる場合、サ
その他(コンピューター・テクノロジー)
-
15
sqlplusについて教えてほしいです
Oracle
-
16
不明なコマンドです(FROM")。行の残りは無視されました。 のエラー"
Oracle
-
17
プロシージャの戻り値を取得する方法
Perl
-
18
CLOB型へのINSERT
Oracle
-
19
Oracleでの文字列連結サイズの上限
Oracle
-
20
shellからストアドプロシージャの呼び出し
Oracle
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ORA-01013のエラーについて経験...
-
CASE文のエラーについて
-
SQLLOADER
-
ORA-01843: 指定した月が無効で...
-
「ORA-00907: 右カッコがありま...
-
PL/SQLのコンパイルエラーにつ...
-
ストアドファンクションの実行
-
PL/SQL PLS-00103エラーについて
-
TO_DATE関数について
-
PCC-S-02201エラーの対処を教え...
-
Oracle9 union使用時の結合制限...
-
ORA-06502のエラー
-
dmpファイルのインポート時にで...
-
NVL関数について
-
10gで動いていたSELECT文が11g...
-
ORA-12571パケット書き込みエラ...
-
ACCESSでパススルークエリにパ...
-
ORA-14459: GLOBALキーワードが...
-
SQL*Loaderについて2
-
シェルスクリプトでオラクルの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ORA-01013のエラーについて経験...
-
CASE文のエラーについて
-
PL/SQLのコンパイルエラーにつ...
-
PL/SQL PLS-00103エラーについて
-
「ORA-00907: 右カッコがありま...
-
PCC-S-02201エラーの対処を教え...
-
はじめまして!
-
ORA-06502のエラー
-
PL/SQLでPLS-00201のエラー
-
データベースのカラムの型がCHA...
-
PL/SQLによるCREATE TABLE後のI...
-
SQLLOADER
-
ストアドファンクションの実行
-
ORA-01843: 指定した月が無効で...
-
dmpファイルのインポート時にで...
-
HAVING句でのBETWEEN演算子
-
【PL/SQL】SQL文が長すぎてSELE...
-
シェルスクリプトでオラクルの...
-
pro*c で pl/sql に変数を渡す...
-
ORA-14459: GLOBALキーワードが...
おすすめ情報