SQL*Plus内でPL/SQL、SQLを実行するシェルスクリプトを書いています。
イメージ
sqlplus scott/tiger << EOF
declare
aaa number;
begin
-- *1
select col1 into aaa from test1;
end;
/
-- *2
define a=1
define b=1
@test.sql
EOF
ここで*1にて例えば複数行が返ってくるなどのエラーが
発生した場合、*2以降のSQLを実行せずにSQL*Plusから抜けたいのですが
どのようにすればよいかわかりますでしょうか。
whenever sqlerror exit 255
などはPL/SQL内の論理エラーはハンドリングしてくれないようです。
よろしくお願いします。
それかdefineや@マーク指定によるsqlファイルの取り込みを
PL/SQLの中で実行できる方法を教えていただく方法でも
当方が実施したいことはできるのでそれでもかまいません。
No.1ベストアンサー
- 回答日時:
SQLPLUSで投入したPL/SQL無名ブロック内でのエラーでも、「whenever sqlerror ~」で、
キャッチできますよ。少なくともWindows版SQLPUSは、そういう動作です。
発生源が、SQL文であっても、PL/SQL無名ブロックでも、ORA-nnnnnのエラーを拾わないと
「whenever sqlerror ~」の意味が無いですからね。
この回答への補足
whenever sqlerrorでハンドリングできるのは構文間違いやテーブルが存在しないといった
SQL*Plusとしてのエラーが発生したときだけで
二行ヒットや0件ヒットといったPL/SQLとしてEXCEPTION句にハンドリングされるようなエラー
はwhenever sqlerrorではハンドリングできずにPL/SQL部のEXCEPTION句内の処理を
実行した後に、その後のSQL部も実行されてしまうのではないでしょうか。
それで困っています。RAISE句などでORAエラーを起こせばwhenever sqlerrorにひっかかって
くれるんですかね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【お題】NEW演歌
【大喜利】 若い人に向けたことは分かるけど、それはちょっと寄せ過ぎて変になってないか?と思った演歌の歌詞
-
大人になっても苦手な食べ物、ありますか?
大人になっても、我慢してもどうしても食べれないほど苦手なものってありますよね。 あなたにとっての今でもどうしても苦手なものはなんですか?
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
あなたは何にトキメキますか?
「きゅんとした〜♪」 と思う瞬間ってありますよね。 それは恋愛だったり、推し活だったり、映画のワンシーンだったり……。
-
好きな和訳タイトルを教えてください
洋書・洋画の素敵な和訳タイトルをたくさん知りたいです!【例】 『Wuthering Heights』→『嵐が丘』
-
SQLPLUSで結果を画面に表示しない
Oracle
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ORA-01013のエラーについて経験...
-
CASE文のエラーについて
-
PL/SQLのコンパイルエラーにつ...
-
ORA-01843: 指定した月が無効で...
-
HAVING句でのBETWEEN演算子
-
PL/SQL PLS-00103エラーについて
-
pro*c で pl/sql に変数を渡す...
-
シェルスクリプトでオラクルの...
-
「ORA-00907: 右カッコがありま...
-
SQLで日付+時間で絞り込みたい
-
ORA-06502のエラー
-
無効なSQL文の具体例を教えてく...
-
ACCESSでパススルークエリにパ...
-
OracleMaster勉強中、OEMが起動...
-
Oracleのエクスポートでエラー
-
ORA-12571パケット書き込みエラ...
-
sqlのエラーハンドリングについ...
-
PL/SQLでPLS-00201のエラー
-
ORACLEのUPDATE処理
-
ORA-14459: GLOBALキーワードが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ORA-01013のエラーについて経験...
-
CASE文のエラーについて
-
PL/SQLのコンパイルエラーにつ...
-
ORA-01843: 指定した月が無効で...
-
PL/SQL PLS-00103エラーについて
-
はじめまして!
-
シェルスクリプトでオラクルの...
-
「ORA-00907: 右カッコがありま...
-
sqlのエラーハンドリングについ...
-
PCC-S-02201エラーの対処を教え...
-
SQLLOADER
-
ACCESSでパススルークエリにパ...
-
HAVING句でのBETWEEN演算子
-
PL/SQLでPLS-00201のエラー
-
ORA-14459: GLOBALキーワードが...
-
無効なSQL文の具体例を教えてく...
-
PL/SQLによるCREATE TABLE後のI...
-
pro*c で pl/sql に変数を渡す...
-
DATABSE LINKについて
-
ORA-06502のエラー
おすすめ情報