いつも勉強させていただいています。さて、現在JAVAで作成されたDBをRPG SQLにて処理するプログラムを作成していますが該当DB内にNULLがセットされているため、RPG SQL側のFETCH命令で305のエラーが発生してしまいます。DBのフィールド単位に、ALWNULL設定をとも考えましたが、RPG側の設定でNULLの使用許可が出来るようなことがないでしょうか?宜しくお願いいたします。
SQL0305 は確かに NULL値をセットする変数が存在しないという旨のエラーですが逆にこのエラー・メッセージを読み代えると、対象レコードが存在しないのにFETCH が実行されているということになります。つまり、FETCH の直前に実行されている SELECT 文での選択レコードが何もなかったのに、その判断が成されずに FETCH が実行されたということです。単にNULL値のレコードが見つかったという訳ではないと思われます。SELECT 後にレコードが見つからなかった場合の判断を追加してみてください。
IKDさんご返信ありがとうございます。> 単にNULL値のレコードが見つかったという訳ではないと思われます。> SELECT 後にレコードが見つからなかった場合の判断を追加してみてください。ご指摘頂いたとおり、試してみましたが、レコードは存在しているようです。やはりIFNULL等で1項目づつ判断しなければならないでしょうか?
具体的には、どのようなコーディングでしょうか ?CREATE TABLE を事前に行っておられるのであればCREATE TABLE(QTEMP/SHOHIN)( SHNAME CHAR(32) NOT NULL DEFAULT '}のようにして事前に NULL に対して省略時の処理を定義しておくことができます。