ORACLE機能 エラー

[ORAエラー] ORA-01403: データが見つかりません

投稿日:2017年10月2日 更新日:

以下のように表示されます。

(日本語)
ORA-01403: データが見つかりません。
(英語)
ORA-01403: no data found

発生パターン

このエラーは以下のような場合に発生します。

  • PL/SQL内でSELECT~INTO句を使用している箇所で、SELECT結果が存在しない
  • PL/SQL内で配列を使用している箇所で、初期化されていないインデックス要素にアクセスしようとした
エラー例
SQL> DECLARE 2 aa VARCHAR2(100); 3 BEGIN 4 SELECT user_name INTO aa FROM m_user WHERE user_id = '123'; 5 DBMS_OUTPUT.PUT_LINE(aa); 6 END; 7 / DECLARE * 行1でエラーが発生しました。: ORA-01403: データが見つかりません。 ORA-06512: 行4

SELECT結果が存在しない前提です。

対処法

  • SELECT~INTO句で結果が存在しない可能性がある場合は、BEGIN~EXCEPTION~ENDで囲って例外処理を記述する。
    (結果が存在しない場合は、NO_DATA_FOUNDエラーが発生します。)
  • 配列生成時は、必ず初期化するように注意してコーディングする。
    (歯抜けのインデックス番号はバグの元なので、歯抜けにしないようにする。)

スポンサーリンク

スポンサーリンク

-ORACLE機能, エラー

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

ORACLE

[ORAエラー] ORA-01659: nを超えるMINEXTENTSを表領域XXXに割当てできません。

以下のように表示されます。 (日本語) ORA-01659: nを超えるMINEXTENTSを表領域XXXに割当てできま ...
ORACLE

[ORACLE] ユーザのパスワード有効期限を無期限にする

ユーザのパスワード有効期限を、無期限にする手順です。 1.対象のプロファイル確認する まずは、ユーザに設定されているプロ ...
ORACLE

[ORACLE関数] レコード単位で最小値・最大値を求める(LEAST、GREATEST)

レコード単位で最小値or最大値を求めるには、LEAST/GREATEST関数を使用します。 例として、学生毎の国語、数学 ...
ORACLE

[ORACLE] 表領域にデータファイルを追加する

表領域にデータファイルを追加するSQLです。 構文 例)表領域にデータファイルを追加するSQL [crayon-5c43 ...
ORACLE

[SQL] 2つのSELECT結果の重複分を抽出する(INTERSECT)

2つのSELECT結果の重複分を抽出するには、INTERSECTを使用します。 INTERSECTは集合演算子のひとつで ...

スポンサーリンク