问题描述
我有一个带有类型日期的列 (CREATED_ON) 的表。我今天在其中插入一行,其中包含04-09-2017 12:33:43的值。但是,在96小时后,如果我查询该行,则CREATED_ON的值将更改为04-09-2017 00:00:00。
我们在更新记录等时彻底扫描了代码中可能导致此更改的任何错误,但找不到任何错误。不幸的是,我没有任何现场例子。有人遇到过这个问题吗?请帮帮我。
谢谢,
斯里拉姆·斯里达兰。
我们在更新记录等时彻底扫描了代码中可能导致此更改的任何错误,但找不到任何错误。不幸的是,我没有任何现场例子。有人遇到过这个问题吗?请帮帮我。
谢谢,
斯里拉姆·斯里达兰。
专家解答
Oracle数据库中的值通常不会自行更改,除非您有一个非常易变的磁盘 :)
需要检查的一些事情:
1.确保在插入之后和96小时后读取的值是从同一个表单元格中读取的,并且读取的值不是显式或隐式数据类型转换的结果,转换期间会添加时间部分 (而不是从磁盘读取)。您可以使用转储函数从表中读取实际存储字节:
SELECT DUMP(my_column,16) FROM my_table WHERE my_primary_key_column = ''
2.检查任何可能修改有问题的列的触发器
3.检查任何可能修改有问题的列的DBMS_JOB作业
4.检查任何可能修改有问题的列的DBMS_SCHEDULER作业
5.创建一个ON UPDATE触发器来监视列的更改使用V $ SESSION和V $ SESSION_CONNECT_INFO视图在触发器触发时提取有关应用程序、主机、用户等的信息,并将这些信息存储在辅助表中。这可能有助于找出修改该值的内容。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




