プライマリ・コンテンツに移動
Oracle® Database Oracleプリコンパイラのためのプログラマーズ・ガイド
12c リリース1 (12.1)
B71398-03
目次へ移動
目次
索引へ移動
索引

前
次

インジケータ変数を使用しないNULLのフェッチについて

Oracleプリコンパイラのリリース1.5、1.6および1.7では、インジケータ変数が関連付けられていないホスト変数にデータをFETCHするソース・ファイルの場合、実行時にホスト変数にNULLが戻されると、ORA-01405のメッセージが表示されます。リリース1.8では、MODE=ORACLEおよびDBMS=V7を指定するとき、UNSAFE_NULL=YESも指定すると、ORA-01405のメッセージが表示されなくなります。

Oracleデータベース用のアプリケーションを開発する場合、NULLが戻される可能性のあるホスト変数には、インジケータ変数を組み込むことをお薦めします。ただし、Oracleバージョン6からOracleデータベース・バージョン7へアプリケーションを移行する際には、UNSAFE_NULLオプションを使用すると、移行のプロセスが非常に容易になります。

詳細は、UNSAFE_NULLおよびインジケータ変数の使用についてを参照してください。

DBMS=V7およびMODE=ORACLEの使用について

MODE=ORACLEおよびDBMS=V7を指定してプリコンパイルしたアプリケーションでは、実行時にインジケータ変数が関係付けられていないホスト変数にNULLが戻されると、ORA-01405エラーが発生します。これらのオプションを指定してOracleデータベース・バージョン7にアップグレードするときには、次の2つの方法のいずれかでアプリケーションを移行する必要があります。

  • 必要なインジケータ変数を組み込むようにソース・コードを変更

  • コマンドラインでUNSAFE_NULL=YESを指定

Oracleデータベース・バージョン7にアップグレード中で、プリコンパイル時にDBMS=V7を使用するとき、またはOracleバージョン6と異なるOracleデータベース・バージョン7の新機能を使用するとき、ほとんどの場合、ソース・ファイルに対する変更は最小限で済みます。ただし、アプリケーションでインジケータ変数が関連付けられていないホスト変数にNULL値をFETCHする可能性がある場合は、ORA-01405メッセージが表示されないようにUNSAFE_NULL=YESを指定し、ソース・ファイルに関連するインジケータ変数を追加しないでください。

関連のエラー・メッセージ

UNSAFE_NULLオプションに関連するプリコンパイル時のメッセージの詳細は、『Oracle Databaseエラー・メッセージ』を参照してください。