動的選択クエリを実行するストアド プロシージャがあります。クエリ文字列が大きい。以下はストアドプロシージャです
作成または置換 プロシージャ My_SP ( procRefCursor out sys_refcursor, -- その他の入力変数はこちら ) は dynSqlComplete varchar2(8000) := 'n/a'; 始める dynSqlComplete := '大規模なクエリがここに'; dynSqlComplete の procRefCursor を開きます。 終わり;
このspを実行すると、次のエラーが表示されます
ORA-00600: 内部エラー コード、引数: [qcscbAddToSelLists]、[]、[]、[]、[]、[]、[]、[]、[]、[]、[]、[]
そのため、変数のサイズdynSqlCompleteを varchar2(5000) に減らしてから、ストアド プロシージャを実行しました。次のエラーが発生しました。
ORA-06502: PL/SQL: 数値または値のエラー: 文字列バッファが小さすぎます
私は無駄に多くのことを試しましたが、見当違いになるため、ここに追加したくありません.
-- 編集 -- 2012 年 6 月 6 日
こんにちは、みんな、
問題を特定できましたが、まだ解決できていません。クエリを部分的に実行しようとしたところ、エラーをスローしているクエリが見つかりました。含まれていSTART WITHて、コメントすると、クエリが機能し始めました。以下のコードを提供し、エラーが発生しているコードをコメントアウトしました。
RowNumber1 として RowNum を選択し、
GR.*、
--LEVEL AS LineageLvl,
VDE.*
から
(選択する *
FROM group_relations left 外部結合 relationship_classifier_instances RC オン
rc.relation_id = group_relations.Group_relation_id WHERE group_relation_type_id IN
(19,20,32,38,42,43) および (rc.relation_id は null)
) GR
LEFT OUTER JOIN Vendor_Feed_data_elements VDE
オン GR.Group_Relation_Type_Id = 19
AND GR.Primary_GroupField_Id = VDE.Vendor_Data_Element_Id
/* エラーが発生しているコード
皮切りに
(
VDE.Vendor_Data_Element_Id は NULL ではありません)
CONNECT BY nocycle before GR.RELATED_GROUPFIELD_ID = GR.PRIMARY_GROUPFIELD_ID*/