更新Oracle表colums以使用regex替换值

时间:2017-03-16 06:05:47

标签: sql oracle

我有一个NVARCHAR列,我需要更新数据格式不同的一些行。

我需要更新条目16/MAR/16的所有列以反映默认时间,因此只有日期只有16/MAR/16 08:00:00

的默认时间戳的列才会显示

选择它并不是一个真正的问题,因为下面的select语句就是这样。

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]$');

返回 newdate 16/MAR/16 08:00:00

我需要知道的是,如何使用newdate 安全将select语句更改为更新/替换create_date列?

1 个答案:

答案 0 :(得分: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]$');

至于"安全"这样做是安全的,你的选择是非常具体的,我们只是将它应用于更新。