日期:2014-05-17  浏览次数:20910 次

求助,oracle的sysdate问题
我有一张表,里面的date属性设置了唯一约束,这样写存储过程的时候就出了问题,当连续插入两条sysdate的时候,调试时没有问题,因为会有时间间隔,而直接运行的时候速度太快,sysdate来不及变,就会违反唯一约束条件,插入失败,谁知道怎么解决这个问题,我的表结构跟约束是不可能变的,我在想可不可以让这两条数据插入的时候中间有个延时之类的功能,这样sysdate就不会一样了,谁知道怎么解决啊?????

------解决方案--------------------
可以在PL/SQL代码中使用延时操作。
DBMS_LOKC.SLEEP(毫秒数);
------解决方案--------------------
为什么不用 systimestamp
------解决方案--------------------
探讨
为什么不用 systimestamp

------解决方案--------------------
探讨
我有一张表,里面的date属性设置了唯一约束,这样写存储过程的时候就出了问题,当连续插入两条sysdate的时候,调试时没有问题,因为会有时间间隔,而直接运行的时候速度太快,sysdate来不及变,就会违反唯一约束条件,插入失败,谁知道怎么解决这个问题,我的表结构跟约束是不可能变的,我在想可不可以让这两条数据插入的时候中间有个延时之类的功能,这样sysdate就不会一样了,谁知道怎么解决啊????……

------解决方案--------------------
使用systimestamp又如何,楼主的表结构不能改变,存储时还是原来的Date类型,秒后面的数据又不能存储进去。
------解决方案--------------------
SQL code
主要是靠需求,确认有那个需求的话,
改为timestamp
值为:systimestamp 毫秒级的!