如何在oracle数据库中查找最后一条插入的数据?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在oracle数据库中查找最后一条插入的数据?相关的知识,希望对你有一定的参考价值。
参考技术A有以下几个方法,供您参考。
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。是甲骨文公司的一款关系数据库管理系统。
oracle 怎么在存储过程中创建一个临时表,在里面插入数据,再查找这个临时表的所有数据,最后drop这个表。
Oracle的临时表的
处理机制,
和
SQL
Server
的不一样。
假如你的临时表的结构不是每次执行都发生变化的话
那么就是事先
通过
CREATE
GLOBAL
TEMPORARY
TABLE
语句,把临时表建立好。
存储过程里面,就根据需要,
执行
INSERT
/
SELECT
之类的操作就可以了 参考技术A create
procduce
test
is
isql
varchar2(200);
dptable
varchar2(100):='drop
table
test';
begin
isql:='create
global
temporary
table
test
(sid
int,sname
varchar2(20))
on
commit
delete
rows';
execute
immediate
isql;
--创建临时表
insert
into
test
values
(1,'abc');
execute
immediate
dptable;
---删除临时表
end;
-------------------
对于oracle
临时表在存储过程中调用,我是觉得这视乎没什么意义,oracle
提供在数据库里预定义临时表,只有在调用的时候才会在临时表空间里分配空间,也就是说你可以提前在数据库里创建临时表,然后再到存储过程里直接调用临时表就行了
以上是关于如何在oracle数据库中查找最后一条插入的数据?的主要内容,如果未能解决你的问题,请参考以下文章