在Oracle库上几种特殊情况的SQL语句
2014-02-23 23:41
302 查看
在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;
注意:以上操作需要具有管理员权限方可操作。
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;
注意:以上操作需要具有管理员权限方可操作。
相关文章推荐
- 在Oracle库上几种特殊情况的SQL语句
- Mybatis中使用sql几种特殊情况
- PHP mysqli_real_escape_string()函数--转义 SQL 语句中的特殊字符
- Oracle查看表空间的大小及使用情况sql语句
- 应用数据源Druid监控SQL语句的执行情况配置
- 查看sql 语句io执行情况
- 特殊SQL语句及优化原则
- 特殊SQL语句及优化原则
- 应用Druid监控SQL语句的执行情况
- 查看Oracle执行计划的几种方法 / oracle中DateTime类型的字段,建立索引后,查寻时索引如何生效?/ oracle 中sql语句怎么加多个强制索引
- 【数据库SQL】查找特殊字符语句的使用案例
- sql 语句中or条件之种种情况
- sql中索引不会被用到的几种情况
- C# sql语句拼接时 like情况的防sql注入的用法
- 查看oracle的sql语句历史记录和锁表的情况
- oracle v$sqlarea 分析SQL语句使用资源情况
- Oracle 查看表空间的大小及使用情况sql语句
- oracle v$sqlarea分析SQL语句使用资源情况
- (转)SQL 语句中特殊字符的处理及预防sql 注射
- [转载]Oracle中SQL语句的几种用法