江湖开发者 | Java粉
网站地图
首页> 数据库> oracle常用命令总结
2017
03-25

oracle常用命令总结

oracle常用命令总结 


oracle是我们平常工作中最常见的数据库,平时的命令查询、job、dblink的创建等sql也是我们经常用到的,现在把我经常用到的sql整理出来,方便相互学习,交流。

1.查看表是否被锁住

看表被锁:

select  p.spid,c.object_name,b.session_id,b.oracle_username,b.os_user_name   , a.sid,a.serial#
from   v$process   p,v$session   a,   v$locked_object   b,all_objects   c  
where   p.addr=a.paddr   and   a.process=b.process   and   c.object_id=b.object_id

解锁:  

 alter system kill session '221,21743'; --a.sid,a.serial#

2. 查看表空间的语句  使用率,空闲率

select a.file_id "FileNo",
       a.tablespace_name "Tablespace_name",
       a.bytes "Bytes",
       a.bytes - sum(nvl(b.bytes, 0)) "Used",
       sum(nvl(b.bytes, 0)) "Free",
       sum(nvl(b.bytes, 0)) / a.bytes * 100 "%free"
  from dba_data_files a, dba_free_space b
 where a.file_id = b.file_id(+)
 group by a.tablespace_name, a.file_id, a.bytes
 order by a.tablespace_name;

3. --查看表所占空间大小 单位M

select segment_name, sum(bytes) / 1024 / 1024 Mbytese
  from user_segments
 where segment_type = 'TABLE'
 and segment_name = 'DEVICE_INFOS'
 group by segment_name
 order by Mbytese desc;

4. --创建dblink

drop public database link AAA_LINK ;
create public database link AAA_LINK connect to username identified by pwd using '(DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.5.1.3)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = AAA)
    )
  )';

验证:

Select * from config_infos@AAA_LINK;

其中AAA_LINK表示创建link的名称,

加粗字体是需要根据自己数据库的情况修改的。

5.查看表是否是分区表

select * from user_tab_partitions;

6.常用数据库sql字符截取的sql:

 select substr(a,
               0,
               decode(instr(a, '.', 1, 2) - 1,
                      -1,
                      length(a),
                      instr(a, '.', 1, 2) - 1)) "截取后的字段",
        a "未截取的字段"
   from (select '232' a
           from dual
         union
         select '107.107.66176' from dual) t

7.数据库job的创建

variable job1 number;
begin
  sys.dbms_job.submit(job => :job1,
                      what => 'AGGRE_CAPACITYPLANNING;',
                      next_date => sysdate,
                      interval => 'SYSDATE+1');
  commit;
end;
/

--INTERVAL:用于计算下一运行时间的表达式;NEXT_DATE下一次定时运行任务的时间

查询job:select * from user_jobs;

删除job:EXEC DBMS_JOB.remove(407); commit;--407未job的id号


Java江湖     
全部评论:

表情验证码,看不清楚,换一张

随机文章

云标签

公众号

微信

分享:分享我们的知识;专注:专注个人技术的提升;