0

マテリアライズド ビューを毎日午前 8:00 に自動的に更新しようとしています。以下のコードを書きましたが、目的の出力が得られません。

CREATE MATERIALIZED VIEW empl_M_V
  ORGANIZATION HEAP PCTFREE 10 PCTUSED 0 INITRANS 2 MAXTRANS 255 NOCOMPRESS 
  NOLOGGING STORAGE(INITIAL 524288 NEXT 524288 MINEXTENTS 1 
                    MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 
                    FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
  TABLESPACE "MITG_DATA"
  USING INDEX
  REFRESH START WITH TO_DATE('10-jul-2012 20:09:00', 'DD-Mon-YYYY HH24:MI:SS')
  NEXT ROUND(SYSDATE+1 )+ 8/24 + 30/1440
  AS
  SELECT * from support

私を助けてください

4

1 に答える 1

1

ROUND関数を使用しているため、午後12時以降の場合は翌日になります。それで、あなたの時間は 20:03 だと思いますので、あなたの MV は明日ではなく、明後日に実行されます。

実行したことを確認するには、次を実行します。

select ROUND(SYSDATE+1 )+ 8/24 + 30/1440 from dual;

ただし、解決策は のtrunc代わりに使用することですround

于 2012-07-13T12:34:28.817 に答える