首页 >>  正文

oracle查询数据

来源:baiyundou.net   日期:2024-09-21

Oracle数据库数据恢复环境:

北京某国企客户Oracle 11g R2数据库误truncate table CM_CHECK_ITEM_HIS,表数据丢失,业务查询到该表时报错,数据库的备份不可用,无法查询表数据。

Oracle数据库执行Truncate命令的原理:在执行Truncate命令后ORACLE会在数据字典和Segment Header中更新表的Data Object ID,但不会修改实际数据部分的块。由于数据字典与段头的DATA_OBJECT_ID与后续的数据块中的并不一致,所以ORACLE服务进程在读取全表数据时不会读取到已经被TRUNCATE的记录,但是实际数据未被覆盖。

Oracle数据库数据恢复过程:

1、为保护用户数据和重现故障的解决过程,北亚企安数据恢复工程师重构了与用户相同的故障:

使用Scott用户创建表emp1,连续多次复制emp表,多次复制后的总记录数为7340032条。truncate表emp1,之后没有进行任何操作。查询该表,数据库中该表的记录为0条。

北亚企安数据恢复——Oracle数据恢复

注: Os:win server 2008R2。数据库版本:win_oracle_11.2.0.1_x64;

2、对system表空间文件进行分析,找到truncate表的原始数据所在位置。

北亚企安数据恢复——Oracle数据恢复

3、解析表所在的数据文件,找到被truncate的数据。

4、将truncate的数据插入到数据库中。

5、在Oracle数据库中查看被truncate的表,发现数据回来了,直接备份数据。

北亚企安数据恢复——Oracle数据恢复

6、Exp导出scott用户。

北亚企安数据恢复——Oracle数据恢复

","gnid":"9f701659f7143a20c","img_data":[{"flag":2,"img":[{"desc":"","height":"578","title":"","url":"https://p0.ssl.img.360kuai.com/t01bb87b952ed595cd2.jpg","width":"804"},{"desc":"","height":859,"title":"","url":"https://p0.ssl.img.360kuai.com/t0118a0d4cbbd9ceed6.jpg","width":706},{"desc":"","height":"721","title":"","url":"https://p0.ssl.img.360kuai.com/t01b4a9affa2a75af97.jpg","width":"823"},{"desc":"","height":"668","title":"","url":"https://p0.ssl.img.360kuai.com/t010be82dc22fa8f428.jpg","width":"703"}]}],"original":0,"pat":"art_src_3,fts0,sts0","powerby":"pika","pub_time":1710148080000,"pure":"","rawurl":"http://zm.news.so.com/872af25aaf7003f4cf307872dc841df9","redirect":0,"rptid":"60067726db01f52e","rss_ext":[],"s":"t","src":"数据恢复资讯","tag":[],"title":"Oracle数据恢复—Oracle数据库误truncate的数据恢复案例

宣伊倪3618oracle 如何查字段里面的数据 -
鞠些尹19411178841 ______ 1、查包含字段NAME的所有表select table_name , column_name,data_type from user_tab_cols where column_name = 'NAME';2、查李三select * from A where name='李三';

宣伊倪3618oracle怎么通过索引查询数据语句? -
鞠些尹19411178841 ______ oracle对于数据库中的表信息,存储在系统表中.查询已创建好的表索引,可通过相应的sql语句到相应的表中进行快捷的查询: 1. 根据表名,查询一张表的索引 select * from user_indexes where table_name=upper('表名'); 2. 根据索引号,...

宣伊倪3618oracle sql 怎么查看表里的所有数据 -
鞠些尹19411178841 ______ 查询系统表:select * from all_tables where table_name not in (select table_name from user_tables); 查询用户表:select * from user_tables;

宣伊倪3618Oracle查询语句 -
鞠些尹19411178841 ______ select * from shop,(SELECT 主键,COUNT(1) as aaa FROM SHOP GROUP BY 主键) a where shop.主键 = a.主键 and a.aaa =1 连表条件自己写一下吧!~

宣伊倪3618Oracle数据库中如何查询一个用户A下面所有的表的信息 -
鞠些尹19411178841 ______ 1、打开pl/sql客户端,登录oracle数据库;2、编写sql,select * from user_tables t where table_name like 'TEST%' order by 1;即可查看该用户下所有的表;3、编写sql,select * from all_tables t;即可查看该库下所有用户所有的表;4、编写sql;select * from user_tab_cols t where table_name like 'TEST%' order by 1, column_id;即可查看该用户下所有表的字段信息;

宣伊倪3618oracle 查询2分钟前的数据 -
鞠些尹19411178841 ______ 查询两分钟以前的数据,需要用以下语句: select * from 表名 where 时间字段<sysdate-2/60*24;其中,sysdate代表当前的日期时间. sysdate-1即为当前时间的前一天的时间,所以要找出2分钟以前的数据,则用2/60*24,即代表一天24小时共1440分钟,2/1440即为2分钟以前的数据.

宣伊倪3618oracle中如何查询数据表中重复的数据? -
鞠些尹19411178841 ______ 如果想查询数据表中某一个字段重复(这里假设这个字段名是ID1),可以使用以下SQL语句.select Table1.* from Table1 right join ( select ID1 From Table1 Group by ID1 having Count(ID1) > 1 ) T on Table1.id1 = T.id1 如果想查询数据...

宣伊倪3618oracle怎么查询某一个月的数据 -
鞠些尹19411178841 ______ to_char(日期,'yyyy')=to_char(sysdate,'yyyy') and to_char(日期,'mm')=to_char(sysdate,'mm')

宣伊倪3618oracle怎么查看表里面添加的数据 -
鞠些尹19411178841 ______ 为1表示有数据; 因为统计信息不是实时的;2 ,所以可能不准确:select table_name不准确的,num_rows from dba_tables where num_rows >.select count(*) from table_name where rownum< 为0表示没有数据; 0 ,需要自己写存储过程.想要得到准确的数据,查询每一个表中的数据量

宣伊倪3618Oracle 查询前10%的数据 -
鞠些尹19411178841 ______ oracle本身不提供top关键字,如果想要查询前几条,可以使用rownum伪列实现. 实现步骤: 1、使用count聚合函数统计共有多少条数据 select count(*) from Table1; 2、根据count聚合查询总条数乘以百分比,来确定要查询的条数 select count...

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024