易截截图软件、单文件、免安装、纯绿色、仅160KB

【总结】oracle恢复误删除数据,解除锁定的等sql语句

1.曾经不小心把开发库的数据库表全部删除,当时吓的要死。结果找到下面的语句恢复到了1个小时之前的数据!很简单。
注意使用管理员登录系统:
select * from 表名 as of timestamp sysdate-1/12 //查询两个小时前的某表数据!既然两小时以前的数据都得到了,继续怎么做,知道了吧。。

如果drop了表,怎么办??见下面:
drop table 表名;
数据库误删除表之后恢复:( 绝对ok,我就做过这样的事情,汗 )不过要记得删除了哪些表名。
flashback table 表名 to before drop;

2.查询得到当前数据库中锁,以及解锁:
查锁
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;
解锁
alter system kill session 'sid,serial';
如果解不了。直接倒os下kill进程kill -9 spid

3.关于查询数据库用户,权限的相关语句:
Sql代码
1.查看所有用户:
select * from dba_user;
select * from all_users;
select * from user_users;


2.查看用户系统权限:
select * from dba_sys_privs;
select * from all_sys_privs;
select * from user_sys_privs;


3.查看用户对象权限:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;


4.查看所有角色:
select * from dba_roles;


5.查看用户所拥有的角色:
select * from dba_role_privs;
select * from user_role_privs;

4.几个经常用到的oracle视图:注意表名使用大写....................
Sql代码
1. 查询oracle中所有用户信息
select * from dba_user;
2. 只查询用户和密码
select username,password from dba_users;
3. 查询当前用户信息
select * from dba_ustats;
4. 查询用户可以访问的视图文本
select * from dba_varrays;
5. 查询数据库中所有视图的文本
select * from dba_views;
6.查询全部索引
select * from user_indexes;
查询全部表格
select * from user_


相关文档:

oracle实现绑定in字符串

1.建立存放字符串的数组类型
   create or replace type Type_bind as table OF VARCHAR2(4000)
 2.建立将字符串转成数组然后返回给Type_bind函数。
  CREATE OR REPLACE FUNCTION F_PUB_BIND_IN(p_bind IN VARCHAR2)
  RETURN TYPE_BIND AS
/*
  创建时间:2008-8-26
  运行周期 ......

组合索引优化SQL续

昨天我说,用组合索引优化SQL,并不是最优的,这是因为在8亿的表上面有个等价的物化视图,这个物化视图可以代替我在之前在表上面建立的组合索引。
SQL> explain plan for SELECT distinct * from (select
  2   (PROD_9005_GDF_WK_SS_FDIM.PROD_4_NAME),
  3    PROD_9005_GDF_WK ......

SQL UNION 和 UNION ALL操作符


SQL UNION 操作符
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
SQL UNION 语法
SELECT column_name(s) from table_name1
UNION
SELECT column_name(s) from table_na ......

sql 2005 强制使用执行计划 T—SQl

select * from tt t inner loop join ss s with(nolock) on s.c=t.c
 
 使用 nested join
select * from tt t inner merge join ss s with(nolock) on s.c=t.c
 
 使用 merge join
 
select * from tt t inner hash join ss s with(nolock) on s.c=t.c
 
使用  hash jion
&n ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号