動的選択クエリを実行するストアド プロシージャがあります。クエリ文字列が大きい。以下はストアドプロシージャです
作成または置換 プロシージャ 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*/