For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!
hello there is a problem with webutil after upgrading to oracle 12c ,FRM-40735: WHEN-BUTTON-PRESSED trigger raised unhandled exception ORA-06508 webutil
any suggestion ? thx
クエリトランスフォーメーションのビューマージで2階層のクエリが1階層に置換され、結果として各行でプロシジャが2回づつ呼ばれているということですね。なので単純にプロシジャを呼んでいるインラインビューがマージされないようにすれば解決します。素直にNO_MERGEヒントでOKでしょう。テーブルサイズが大きくなければWITHにしてファクタリングするのもアリですね。
> create table test_table(n) as select 1 from dual union select 2 from dual;
> create function test_func return varchar2 as begin RETURN DBMS_RANDOM.STRING('x', 10); end;
> select n, r r1, r r2 from (select n, test_func r from test_table);
N R1 R2
--------- ------------ ------------
1 AJ1LNZ30HD LAMQV4CQUY
2 F911DGQDYZ ID8FDREGKF
> select n, r r1, r r2 from (select /*+ no_merge */ n, test_func r from test_table);
1 K5MPMUR3DQ K5MPMUR3DQ
2 DD2Y5NUWPM DD2Y5NUWPM
> with t as (select /*+ materialize */ n, test_func r from test_table) select n, r r1, r r2 from t;
1 0F2RE7Y8C3 0F2RE7Y8C3
2 O6C4WCBAFP O6C4WCBAFP
tlokweng様、お礼が遅くなってしまい、申し訳ありません。サンプルまでお示しくださいまして、誠にありがとうございます。
クエリトランスフォーメーションがこのようなSQLに対し作用しているとは全く一度も想像すらつきませんでした。
頂戴したサンプルで動作も確認出来ましたので、本来の組み込み先に入れてみようと思います。
ありがとうございました。