使用しているPL / SQL関数があり、コンパイルが正常に行われることもありますが、このエラーが発生することもあります。
ORA-00600: internal error code, arguments: [17285], [0x318FDE2C], [1], [0x273F1C60], [], [], [], [], [], [], [], []
00600. 00000 - "internal error code, arguments: [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s]"
*Cause: This is the generic internal error number for Oracle program
exceptions. This indicates that a process has encountered an
exceptional condition.
*Action: Report as a bug - the first argument is the internal error number
オラクルを切断して再接続すると、関数は正常にコンパイルされます。
エラーコードと引数をグーグルで検索すると、これがわかりました
ERROR:
ORA-600 [17285] [a] [b] [c]
VERSIONS:
versions 7.0 to 10.1
DESCRIPTION:
Oracle is in the process of deleting an instantiation object when it
discovers that the object is currently on the call stack.
This should not occur and so ORA-600 [17285] is reported.
ARGUMENTS:
Arg [a] Instantiation object
Arg [b] Call stack nesting level
Arg [c] Library Cache Object Handle
FUNCTIONALITY:
Kernel Generic Instantiation manager
IMPACT:
PROCESS FAILURE
NON CORRUPTIVE - no corruption to underlying data.
SUGGESTIONS:
This error is usually accompanied by another error. Please check for this.
私の関数は、パイプライン化されたカスタムテーブルタイプを返します。ほとんどの機能コードが省略されています...
CREATE TYPE t_solexp_row AS OBJECT (
obj VARCHAR(30),
dt DATE,
param VARCHAR(30),
param_id NUMBER,
val NUMBER,
change_time TIMESTAMP
);
/
CREATE TYPE t_solexp_tab IS TABLE OF t_solexp_row;
/
CREATE OR REPLACE FUNCTION get_solexp_tab(p_start_date IN DATE, p_end_date IN DATE) RETURN t_solexp_tab PIPELINED AS
BEGIN
...
LOOP
PIPE ROW(t_solexp_row(...,...,...,...,...,...);
END LOOP;
...
RETURN;
END;
/
この動作を引き起こす可能性のあるものについて何か考えはありますか?
これは自己回答の質問として計画されていませんでしたが、私がそれを書いたときに私はアイデアを得ました、Stackoverflowに感謝します!:)
SQLDeveloperで関数を開発およびテストしています。結果セットの行数は、引数に応じて数千から数千まで変化します。
この問題は、最後の結果セットに50を超えるレコードが含まれている場合にのみ発生することに気付きました。
問題は、SQL Developerが最初にOracleから最初の50行のみをフェッチし、パイプラインに残っているデータを使用して関数を再コンパイルすると、ORA-00600が発生することです。妥当と思われ、エラーの説明と一致します
Oracle is in the process of deleting an instantiation object when it
discovers that the object is currently on the call stack.
This should not occur and so ORA-600 [17285] is reported.
ふぅ、それが今機能していることを嬉しく思います!データベースエンジンからの内部エラーは私に震えを与えるのに十分です。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加