2017-03-16 5 views
0

データが同じ形式でない行の一部を更新する必要があるNVARCHAR列があります。私はちょうど日付の列のみがそれを選択16/MAR/16 08:00:00正規表現で値を置き換えるOracleテーブルの列を更新

のようにデフォルトのタイムスタンプを必要とするだけでなく、デフォルトの時間を反映するために16/MAR/16のエントリを持つすべての列を更新する必要が

は本当にとして問題ではありません以下のselectステートメントはそれを正確に行います。 NEWDATE を返し

select (create_date || ' 08:00:00') newdate 
from table 
where regexp_like(create_date, '^[0-9][0-9]\/[A-Z][A-Z][A-Z]\/[0-9][0-9]$'); 

16/MAR/16 08:00:00

私は私が更新にselect文を変更するにはどうすればよい、/安全NEWDATE でCREATE_DATE列を置換されて知っておく必要がありますか?

答えて

0

それは本当に簡単です....

UPDATE table 
SET create_date = REPLACE(create_date, create_date, create_date || ' 08:00:00') 
where regexp_like(create_date, '^[0-9][0-9]\/[A-Z][A-Z][A-Z]\/[0-9][0-9]$'); 

限り、これを行う「安全」として、それは安全である、あなたの選択は非常に具体的で、私達はちょうど更新にこれを適用します。

+1

76行が正常に更新されました。ありがとうございました。 –

関連する問題