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およびインジケータ変数の使用についてを参照してください。
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
を指定し、ソース・ファイルに関連するインジケータ変数を追加しないでください。