0

マテリアライズド ビューを数日間、数時間とコードの間で更新しようとしています。

ALTER MATERIALIZED VIEW M_MVIEW
REFRESH FORCE ON DEMAND START WITH TO_DATE('11-07-2014 10:30:00', 'DD-MM-YYYY HH24:MI:SS') 
                        NEXT (CASE WHEN (TO_CHAR(SYSDATE,'D','NLS_SORT = XTURKISH') = 5) AND (SYSDATE BETWEEN (TRUNC(TO_DATE('10-07-2014 21:00:00', 'DD-MM-YYYY HH24:MI:SS')) + 20/24) AND (TRUNC(TO_DATE('10-07-2014 21:00:00', 'DD-MM-YYYY HH24:MI:SS')) + 31/24)) THEN TRUNC(NEXT_DAY(TO_DATE('10-07-2014 21:00:00', 'DD-MM-YYYY HH24:MI:SS'), 'PAZARTESİ')) + 7/24
                                   WHEN (SYSDATE BETWEEN (TRUNC(TO_DATE('10-07-2014 21:00:00', 'DD-MM-YYYY HH24:MI:SS')) + 20/24) AND (TRUNC(TO_DATE('10-07-2014 21:00:00', 'DD-MM-YYYY HH24:MI:SS')) + 31/24)) THEN TRUNC(SYSDATE) + 31/24
                                   ELSE SYSDATE + 2/24 END)

しかし、エラーが発生しています。ORA-06502: PL/SQL: numeric or value error%s 問題を解決しようとしましたが、できませんでした。誰でも私の問題について何か考えがありますか?

ありがとう。

4

2 に答える 2

0

マテリアライズド ビューの NEXT 句の場合、CASE ステートメントを記述できますが、2 つの条件しか受け入れません (のように非常に単純にする必要がありますcase when x=x then aa else bb end)。私の提案は、可能であればあなたの状態を単純化することです.

于 2014-07-14T12:13:36.863 に答える