Milk-
2017-05-01 07:53
采纳率: 100%
浏览 1.6k

Oracle 追加一个编号列

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

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

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • tiegenZ 2017-05-02 12:37
    已采纳

    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

    图片说明

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • MathRandom 2017-05-01 09:03

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

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

    评论
    解决 无用
    打赏 举报
  • mooZHENQIANGgggg 2017-05-01 19:30

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

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题