oracle数据库部分技巧

由于笔者在操作数据库时,遇到几个以前不太常见的操作,感觉有必要记录一下,如下:

1.查被锁表
  SELECT object_name, machine, s.sid, s.serial#
  FROM gv$locked_object l, dba_objects o, gv$session s
  WHERE l.object_id = o.object_id
  AND l.session_id = s.sid;

2.解被锁表
  ALTER system kill session '43, 9151';


3.数据库解锁
  ALTER USER gb_report ACCOUNT UNLOCK;

4.查询表中某一列重复
  select *from table t where t.name in
  (select s.name from table  s group by  s.name having count(*) > 1 );

5.数据库授权
  grant resource,connect,DBA to gb;(gb为数据库用户)

6.批量修改表某个字段
  update 要修改的表 set 字段名=replace(字段名,‘要修改的字符’,‘修改为什么字符’) where 条件;

7.基于 as of timestamp 的闪回查询
  select * from 表  as of timestamp to_timestamp('2016-4-8 17:30:00','YYYY-MM-DD HH24:MI:SS');

8.sql 之 left join,right join,inner join;
  left join:左边显示全,右边满足条件的显示,用null补全;
  right join: 右边全部显示,左边满足条件的显示,用null补全;
  inner join: 左右两边满足条件的显示。

9.只创建表,不添加数据
  create table user as select* from temp where 1=0;
  创建表,也添加数据
  create table user as select* from temp;

10.将varchar类型转换为date
select to_date('2017-01-23','YYYY-MM-DD') from DUAL;

由于笔者水平有限,难免有误,还望有心的读者斧正!

posted @ 2017-04-21 14:22  临飞  阅读(195)  评论(0编辑  收藏  举报