求教:我想用oracle的序列创建160200401111,其中2004为年份,会变化,01111也是变化的,想寻求好的方法

gnawmoulin 2004-04-04 02:40:14
我打算先创建一个序列,起始1111,最大99999,然后用insert 语句向数据库中插入currval,接着改写成160200401111,下次插入用nextval,同样也改写,
我总感觉这样做改来改去的不好,不知大家有没有好的建议
...全文
80 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gnawmoulin 2004-04-04
  • 打赏
  • 举报
回复
谢谢你了
gnawmoulin 2004-04-04
  • 打赏
  • 举报
回复
第一次访问年份序列nextval,比较当前的年份与访问的(应该是2005)是否相同,这时时间序列的currval是2005,如果相同的话,最好了,年份序列不用再增加了,如果当前年份是2009,则继续访问nextval,直到相同;如果是2003的话,我只好报错了,没办法了


welyngj 2004-04-04
  • 打赏
  • 举报
回复
如果不是2004,怎么办?
gnawmoulin 2004-04-04
  • 打赏
  • 举报
回复
我现在想这样做了:利用序列找到一个唯一的序号,查询当前的系统时间,如果是2004,不查询年份序列,最后将这些和在一起,写在数据库中
welyngj 2004-04-04
  • 打赏
  • 举报
回复
不知道你现在怎么想了?
gnawmoulin 2004-04-04
  • 打赏
  • 举报
回复
谢谢,我刚才试了一下,确实如此
welyngj 2004-04-04
  • 打赏
  • 举报
回复
第一次不可以用sequence_name.currval,这是语法规定。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧