2 Replies Latest reply: Aug 1, 2011 12:49 AM by 875706 RSS

    プログラム実行中にオラクルが切断されてしまう

    875706
      パッケージ内でカーソルを使用していて、そのカーソルのSQL内の項目に固定でNULL値を取得するように
      ロジックが組まれている場合、プログラムを実行するとエラーになる。
      EXCEPTIONの設定をしていて、エラーになった場合、エラーログを出力するようにしているが、エラーログがはかれない。

      例.
         CURSOR カーソル名 IS
            SELECT
                項目1,
                項目2,
                NULL AS 項目3,
                NULL AS 項目4
            FROM
                サンプルテーブル

      以上のような場合、エラーとなり、エラーログもはかれない。
      ※NULLを''に変えるとエラーにならない。

      なぜ、このような現象が起こるのかわからないので、
      アドバイスを下さい。

      Edited by: user13102986 on 2011/07/14 22:06
        • 1. Re: プログラム実行中にオラクルが切断されてしまう
          weyk
           単なる推測です。

           「型」に関する情報が何もなくなってしまうからではないでしょうか。
           何らかの方法で型情報を付与することで、エラーを回避できませんか?
          ロジックが組まれている場合、プログラムを実行するとエラーになる。
          が、どんなエラーなのかわからないのであれですが。
          (「ProC+PL/SQLブロックのプログラムがCore/Application Errorになった」とか。Exceptionでは無いとすると、Oracleのサーバ側サービスが落ちているんじゃ と予測しますが・・・alertに何かかかれてませんか?)
          -- CMN v0.61β --
          • 2. Re: プログラム実行中にオラクルが切断されてしまう
            875706
            追記で一つわかったのが、
            このSQLは10数個のテーブルと内部結合・外部結合を行っており、
            その取得項目にNULLの記述があると強制的に接続が切断されるみたいです。
            短文のSQLでNULLの記述があっても切断されることがなく、長文(複雑)なSQLの場合のみ、切断されるみたいです。
            これはなぜですか?