Oracle 追加一个编号列

Oracle 追加一个编号列

问题描述:

Oracle数据库的一张表,已有历史数据大约 4000 条,现要为该表追加一个新的编号列(比如叫 Code),该列的值要求是“年月日时分秒”+3位随机数。
比如在 2017-05-01 15:50:33 这一时刻生成的编号可能是“20170501155033001”。

现在我想通过 update 语句把这 4000 条历史数据针对新列 Code 值给补齐,请问这个SQL怎么写?

select

to_char(sysdate,'YYYYMMDDhh24miss')||trunc(dbms_random.value(0,9))||trunc(dbms_random.value(0,9))||trunc(dbms_random.value(0,9))

from dual

图片说明

你意思是你有了这个字段了,要全部修改成日期加随机数?
你生成时间是肯定都一样了嘛 只是随机数不一样嘛

这个字段里的时间是你自己写还是自动生成
不管怎么样 最后你获取到拼上去
再update就可以了嘛

虽然不知道直接sql怎么写。我觉得可以用java 连接数据库。用FOR循环每个更新,那这样的话,时间和随机数都不会想同了,办法有点蠢,有更好的方法,求分享