为什么ORACLE中,用SQL语句插入一条记录后,找不到该记录

为什么ORACLE中,用SQL语句插入一条记录后,找不到该记录,第1张

如果你的insert语句正确执行了,

在同一会话(A)中你是可以查询到该记录的,

而你在另一会话(B)中除非你commit你在会话(A)中的 *** 作,才能看到刚插入的记录

都说rownum是oracle早先版本里的一个东西,只是数据在你查询中的行号,并不能按照某一个字段来排序,而且这个列只有从0或1开始,也就是说只能从1开始>=1 或>0 都是可以的,但不可以>2以上的

所以最好用 row_number()来解决

你上边这句

select r,re.* 

from (select row_number() over (order by sales desc) r,t_books.* from t_books) re 

where r>2 and r<5

1 可能查不到

2 原因可能是执行历史记录被删除了,或者是oracle未开启SQL执行历史记录功能。

3 如果历史记录被删除了,可以尝试在oracle数据库中查找备份文件,如果开启了SQL执行历史记录功能,可以通过以下命令查询历史记录:

SELECT sql_text, parsing_schema_name, elapsed_time, cpu_time, buffer_gets, disk_reads, optimizer_cost, fetches, executions, child_latch, sql_id, child_number, sql_plan_baseline, sql_plan_baseline_id, force_matching_signature, plan_hash_value, sql_profile, sql_profile_id FROM v$sql

如果还是无法查到,可以尝试联系数据库管理员或者oracle技术支持寻求帮助。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11692409.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存