0

事前に構築されたビューを使用して、Oracle 内に具体化されたビューを作成しようとしています。

  create materialized view bfb_rpt_sch01.mvw_base_sales
  as select * from bfb_rpt_sch01.vw_base_sales;

このコマンドは実行されず、ハングします。おそらくこれは、ビューが適切に記述されていないことに関係していると思いました。そのため、ビューに対して次のクエリを実行しました。

  select count(*) from bfb_rpt_sch01.vw_base_sales

このクエリの実行には約 6 分かかり、270 万が返されます。これは、ビューが問題ではないことを示していますが、間違っている可能性があります。

4

1 に答える 1

1

私は自分の問題を理解することができました。私の (CREATE MATERIALIZED VIEW AS) は、私の (CREATE TABLE AS) とは異なる説明を使用していました。コードに次のコード行が含まれている場合、(CREATE TABLE AS) としては完全に正常に実行されますが、(CREATE MATERIALIZED VIEW AS) を使用すると失敗する前に 48 時間以上ハングし続けます。

WHERE a.column_name NOT IN (SELECT b.column_name FROM B) --culprit

以下を使用してコードを変更したところ、正常に動作するようになりました。

WHERE NOT EXISTS (SELECT NULL FROM B WHERE a.column_name = b.column_name) --works

なぜこれが起こるのかわかりません、おそらくバグですか?電話をかけるには、ORACLE について十分ではありません。

于 2013-09-13T18:19:52.223 に答える