如何在oracle数据库中查找最后一条插入的数据
selecta.*fromoa_signawherea.createrid='06e0d0d41878be50011878c083cd0006'andrownum=1or...
select a.* from oa_sign a where a.createrid= '06e0d0d41878be50011878c083cd0006' and rownum=1 order by a.createtime desc
这样查就是不对 展开
这样查就是不对 展开
6个回答
展开全部
有以下几个方法,供您参考。
1、对于提交(最后一次操作commit了)的话可以查询那个提交段SELECT
列名1,列名2……FROM 表名 VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAXVALUE where VERSIONS_STARTTIME IS NOT null ORDER BY VERSIONS_STARTTIME DESC;查出来的第一条就是最后改变的数据
2、如果表里面有序列或固定的排序字段可按倒排序后取第一条where rownum<2 order by 排序字段 desc
3、还有另外一种办法就是利用ORACLE伪列rowid
select * from tbl t1 where t1.rowid=(select max(rowid) from tbl t2)
4、在redo log中找到对应相关的表的插入语句,但是这样找到的是sql语句,而不是数据。查redo log得使用log miner工具。
这是几项常用的方法,希望我的回答能给您带来帮助。
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。
展开全部
如果你的表有"插入时间"这样的字段,就找时间最大的记录
如果没有的话,就得查redo log了,在redo log中找到对应相关的表的插入语句,但是这样找到的是sql语句,而不是数据。查redo log得使用log miner工具。
如果没有的话,就得查redo log了,在redo log中找到对应相关的表的插入语句,但是这样找到的是sql语句,而不是数据。查redo log得使用log miner工具。
追问
时间最大?怎么表示呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
表里面是否有序列?是否有固定的排序字段?
如果有就好办了。排序后取第一条
select * from tbl t1 where t1.rowid=(select max(rowid) from tbl t2)
这样不知道是否可以。因为每次插入毕竟ID是不变的,而且递增
如果有就好办了。排序后取第一条
select * from tbl t1 where t1.rowid=(select max(rowid) from tbl t2)
这样不知道是否可以。因为每次插入毕竟ID是不变的,而且递增
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、对于提交(最后一次操作commit了)的话可以查询那个提交段
SELECT 列名1,列名2……
FROM 表名 VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAXVALUE where
VERSIONS_STARTTIME IS NOT null ORDER BY VERSIONS_STARTTIME DESC;
查出来的第一条就是最后改变的数据
2、如果表里面有序列或固定的排序字段可按倒排序后取第一条
where rownum<2 order by 排序字段 desc
3、还有另外一种办法就是利用ORACLE伪列rowid
select * from tbl t1 where t1.rowid=(select max(rowid) from tbl t2)
4、在redo log中找到对应相关的表的插入语句,但是这样找到的是sql语句,而不是数据。查redo log得使用log miner工具
SELECT 列名1,列名2……
FROM 表名 VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAXVALUE where
VERSIONS_STARTTIME IS NOT null ORDER BY VERSIONS_STARTTIME DESC;
查出来的第一条就是最后改变的数据
2、如果表里面有序列或固定的排序字段可按倒排序后取第一条
where rownum<2 order by 排序字段 desc
3、还有另外一种办法就是利用ORACLE伪列rowid
select * from tbl t1 where t1.rowid=(select max(rowid) from tbl t2)
4、在redo log中找到对应相关的表的插入语句,但是这样找到的是sql语句,而不是数据。查redo log得使用log miner工具
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
倒序查第一个就行了呗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询