您的位置:首页 > 数据库 > Oracle

在Oracle库上几种特殊情况的SQL语句

2014-02-24 12:13 411 查看
在Oracle日常维护中,难免会碰到一些特殊情况,这里分享一些例子。

A:表的数据误删了,怎么办?

--1、查看数据表的数据,然后进行删除

select * from score;

delete from score;

--2、查询一小时以前score表的数据

select * from score as of timestamp sysdate-1/24;

--3、执行oracle闪回功能,恢复数据

insert into score select * from score as of timestamp sysdate-1/24;

B:数据表误删了,怎么办?

--1、drop表情况

drop table score;

--2、数据库误删除表之后恢复:记得删除了哪些表名。 

flashback table score to before drop;

C:oracle如何导入多条数据?

--数据库中已有表

insert into scott.emp(empno,ename,hiredate)

       (select empno+100,ename,hiredate from scott.emp where empno>=6999);

--数据库中没有表

create table scott.test

 as(

    select distinct empno,ename,hiredate from scott.emp where empno>=7000

 );

D:如何查询当前数据库中锁,以及解锁?

--查锁

SELECT /*+ rule */ s.username,

decode(l.type,'TM','TABLE LOCK',

'TX','ROW LOCK',

NULL) LOCK_LEVEL,

o.owner,o.object_name,o.object_type,

s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser

FROM v$session s,v$lock l,dba_objects o

WHERE l.sid = s.sid

AND l.id1 = o.object_id(+)

AND s.username is NOT NULL;

--解锁(如果解不了。直接倒os下kill进程kill -9 spid)

alter system kill session 'sid,serial'; 

E:ORA-28000:账户被锁定,如何解决?

--ORA-28000:账户被锁定 因为密码输入错误多次用户自动被锁定.

--解决办法:

alter user user_name account unlock; 

注意:以上操作需要具有管理员权限方可操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息