Oracle 10gデータベースの一部のデータ、特にタイムスタンプ情報の一括更新と読み取りに取り組んでいます。ビジネス要件のためMM/DD/YYYY HH24:MI:SS
形式からYYYY-MM-DD HH24:MI:SS
形式に変換する必要がありました。同様に、タイムスタンプはビジネス要件のためネイティブのdatetimeの代わりにVARCHAR
として保存されます。Oracle 10gでの不正な日時スタンプの検索
残念ながら、データの選択操作を実行する際に問題が発生しました。
私は次のselectを実行したときに具体的に、私はORA-01861を受け取る:リテラルが書式文字列と一致しません:
SELECT datetime_stamp
from entrytable
where
to_date(datetime_stamp, 'YYYY-MM-DD HH24:MI:SS')
between
TO_DATE('11/27/2011 00:00:00', 'MM/DD/YYYY HH24:MI:SS')
and
TO_DATE('12/06/2011 23:59:59', 'MM/DD/YYYY HH24:MI:SS')
and rownum < 1000
私が悪いの引数はTO_DATE(datetime_stamp、「YYYY-MM-DD HH24であることを確認しました:MI:SS ')が、今私は悪い行を見つけようとするために解析するために400k行のデータを持っています。
ORA-01861エラーを生成している行をOracleが戻す方法はありますか?
REGEXP_LIKEを使用して[0-9] [0-9] [0-9] [0-9] - [0-9] [0-9] - [ 0-9] [0-9] [0-9] [0-9]:[0-9] [0-9]:[0-9] [0-9]表現。
以下の機能を実行する必要があります。しかし、タイムスタンプ/日付をタイムスタンプ/日付データ型に格納する方がはるかに良いでしょう。それはあなたにこの煩わしさを救うでしょう。 – Ben
ウィッシュ私はベンができる...私ができることを望む。 – Gyrfalcon2138