
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で質問しましょう!
似たような質問が見つかりました
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- MySQL #1062 - '0' は索引 'PRIMARY' で重複しています。とでています。 1 2023/01/01 06:13
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
- PHP プログラムコードを入力する場合改行してもいいですか? 2 2022/10/02 16:05
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- SQL Server AccessのInsertクエリのあとつづけてDeleteクエリを行いたいがSQLでどう書いたらいい 3 2023/05/27 14:12
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
OracleとADO
-
ORA-01013のエラーについて経験...
-
iTuneでCDを作成したいのですが
-
Dynabook T351/46CW のエラーコ...
-
SQLのSP2-エラーについて
-
フラグメンテーションの解消
-
オラクルエラーの早見表
-
AIX機へのOracleインストール中...
-
メモリ不足について
-
ストアド実行でORA-4030エラー ...
-
DATABSE LINKについて
-
CASE文のエラーについて
-
PL/SQLについての質問です。
-
MySQL ログについて(有効にす...
-
xy平面上の点P(x,y)に対し,点Q(...
-
HD 上の「移動できないファイル...
-
iTunesで曲のバックアップ???
-
オラクル9iのリストア
-
クローンソフトで、Acronis Tru...
-
リカバリ時のデータバックアッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ORA-01013のエラーについて経験...
-
PL/SQL PLS-00103エラーについて
-
CASE文のエラーについて
-
ORA-01843: 指定した月が無効で...
-
はじめまして!
-
PCC-S-02201エラーの対処を教え...
-
「ORA-00907: 右カッコがありま...
-
ORA-06502のエラー
-
シェルスクリプトでオラクルの...
-
PL/SQLによるCREATE TABLE後のI...
-
PL/SQLのコンパイルエラーにつ...
-
ACCESSでパススルークエリにパ...
-
データベースのカラムの型がCHA...
-
ビューが作成できない
-
HAVING句でのBETWEEN演算子
-
ORA-12571パケット書き込みエラ...
-
無効なSQL文の具体例を教えてく...
-
pro*c で pl/sql に変数を渡す...
-
PL/SQLでPLS-00201のエラー
-
エラーコードについて
おすすめ情報