在oralce中,我们有时误删了某些数据或者删除了某些表;这时我们需要恢复这些数据。
第一,delete数据后恢复
delete某些数据后,可以使用下面语句找到,这个主要是使用Oracle的快照功能。查询到当前时间的前100minute的数据。
select * from skiller AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '100' MINUTE)
这个时间由不同情况来定义。
也可以定义为秒、时等等
可以使用下面语句来查看哪些数据是在这个时间段内的区别。
select * from skiller AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '100' MINUTE) where skill_id not in (select skill_id from skiller)
删选出了这些数据,我们就可以将这些数据插入到我们现有表中,示例见下面SQL
insert into skiller select * from skiller AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '100' MINUTE) where skill_id not in (select skill_id from skiller)
第二,Drop数据后恢复
当我们drop一个表后,我们可以在我们的用户回收站内看到这些数据。比如:
select * from user_recyclebin;
在这个结果集中我们可以看到我们删除对象的结果集。
这个只是查看,你可以从中找到你drop的表名以及其他信息。
找到你要恢复的对象名,比如表名。
使用下面语句就可以恢复你的对象了。
flashback table table_name to before drop;
第三,查询表字段信息
select * from user_tab_columns where table_name = 'WZ_CGCL'
利用上面的SQL,输入你的表名,就可以看到你表字段的相关信息,注意表名一定要大写。
select * from tab t where t.tabtype = 'TABLE';
利用上面的SQL,你可以查询表或者视图等相关信息。
第四,使用dbms_aq包,需要对AQ USER,AQ ADMIN用户进行授权
grant execute on dbms_alert to necer;
grant execute on DBMS_AQ to my_username; GRANT RESOURCE TO <UserName>; GRANT CONNECT TO <UserName>; GRANT EXECUTE ANY PROCEDURE TO <UserName>; GRANT aq_administrator_role TO <UserName>; GRANT aq_user_role TO <UserName>; GRANT EXECUTE ON dbms_aqadm TO <UserName>; GRANT EXECUTE ON dbms_aq TO <UserName>; GRANT EXECUTE ON dbms_aqin TO <UserName>;
利用上面的SQL,可以使用具有使用dbms_alert下面的函数。
第五,条件语句中in参数的个数限制
select * from table_1 t where t.a in (a1,a2,a3....a1000)
在9i中个数不能超过256个,在10i中个数不能超过1000个。这个可以使用or语句来解决。
如下所示:
select * from table_1 t where t.a in (a1,a2,a3,....a500) or t.a in (a501,a502,....a1000)
这样就避开了个数限制。
第六,函数Lpad与Rpad的格式以及用法
lpad(string,n,[pad_string]) 向左填充函数
string为输入字符;
n表示填充的位数;
pad_string表示填充的字符---为可选参数,不填,默认填充空格。
如,lpad('xiva',8,'t')则返回ttttxiva.
select lpad('xiva',5,'0') into temp_mrn from dual;
Rpad同理,区别在于此为向右填充函数。
第七,查看Oracle错误代码的含义
http://ora-01407.ora-code.com/code-1.html
第八,数据库导入导出
exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)
导出某些用户的数据。
第九,创建DBLINK
create shared public database link paradise_db_link connect to scpdb36 identified by scpdb36 authenticated by scpdb36 identified by scpdb36 using '(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.42.111) (PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))'
相关推荐
oracle 数据库小常识,很实用!拿出来给大家分享
Oracle数据库基础知识讲义
oracle数据库基础知识,在家轻松自学不求人
资源名称:《基于Linux 的Oracle 数据库管理》PDF 下载内容简介:《基于Linux的Oracle数据库管理》的读者对象为具备Windows系统下的Oracle数据库管理基本知识,想继续学习Linux系统下Oracle数据库管理知识的人员。...
试卷全面检查了学生对Oracle数据库知识点的掌握情况以及利用所学理论解决实际问题的能力。通过设置选择题、设计题、解析题、编程题和应用题,主要考察学生掌握Oracle数据库的理论水平与运用Oracle数据库进行分析与...
2.1 Oracle数据库简介 了解 2.2 Oracle数据库安装与配置 了解 2.3 Oracle数据库体系结构 了解 2.4 SQL*Plus 掌握 数据库体系结构 物理存储结构:用于描述数据库的数据在物理磁盘上的组织方式。 逻辑存储结构:...
数据库开发 Oracle数据库 SQL开发教程 第01章 Oracle数据库基础(共60页).pdf 数据库开发 Oracle数据库 SQL开发教程 第02章 编写简单的查询语句(共34页).pdf 数据库开发 Oracle数据库 SQL开发教程 第03章 限制...
该课程是Oracle数据库系统工程师培训课程 Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。到目前仍在数据库市场上占有主要份额。 ORACLE数据库系统是美国ORACLE...
安装 oracle 数据库 10g 的基础知识
1、Oracle数据库函数大全 2、Oracle数据库傻瓜一千问 3、Oracle初级学习 。。。。。等等诸多文件
Oracle数据库关键知识点 体系架构-全揭秘,牛逼的,看看吧
全面认识Oracle数据库 1 Oracle的数据倒入EXCEL中的方法 3 Oracle 9i如何设置时间间隔型数据 3 配置Oracle监听器 5 Oracle数据库基本操作 6 影响Oracle系统性能初始化参数 9 高性能动态SQL 11 保持Oracle数据优良...
Oracle数据库基础知识(华为内部培训资料
Oracle是大企业常用的数据库,常设数据库维护岗位,相关岗位应聘涉及数据库基础知识的考试,本次提供试题100题