oracle常用语句

oracle常用语句

--修改pl/sql时间显示

ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD hh24:mi:ss';

--赋权   

grant SELECT, INSERT, UPDATE, DELETE ON TF_SM_TEST to gd_ucr_crm;

--创建同义词

create or replace synonym TF_SM_TEST  for gd_ucr_crm.TF_SM_TEST;

--删除同义词

DROP SYNONYM TF_SM_TEST;

--回收权限

revoke all on TF_SM_TEST from GD_UCR_SALE_CEN;

--过程函数授权语句范例

Grant execute on P_CRM_SALE_TEST to gd_ucr_crm;

--分区查询

gd_ucr_crm.TF_SM_TEST PARTITION(PAR_TF_SM_TEST_1)

--创建blink

create public database link DBLINK_CEN1 connect to gd_ucr_crm identified by h1cmzol_ using 'NGTEST';

--查看当条数据是第几条  

select tt.rowno

  from (select t.*, row_number() over(order by 1) rowno from gd_ucr_crm.TF_SM_TEST t) tt

 where tt.SERIAL_NUMBER = '13511111111';

--创建index

  create index IDX_TEST_USER_ID on TF_SM_TEST (USER_ID)

  tablespace TBS_CL_TEST

  pctfree 10

  initrans 2

  maxtrans 255

  storage

  (

    initial 64K

    next 1M

    minextents 1

    maxextents unlimited

  ) online;

--重建索引

 alter index gd_ucr_crm.PK_TF_SM_TEST rebuild;

--修改表的某个字段属性

ALTER TABLE TF_SM_TEST RENAME column USER_IE TO USER_ID

--增加字段和备注

alter table TF_SM_TEST add USER_ID VARCHAR2(10) ;

comment on column TF_SM_TEST.USER_ID

  is '用户编码';

--获取表所有字段并用逗号分隔显示在一个字段中

SELECT TO_CHAR(WMSYS.WM_CONCAT(A.COLUMN_NAME)) COLUMN_NAME 

  FROM(SELECT COLUMN_NAME FROM USER_TAB_COLUMNS WHERE TABLE_NAME = 'TF_SM_TEST' ) A

--数据恢复

select timestamp_to_scn(to_timestamp('2015-03-16 11:40:10.1','yyyy-MM-dd HH24:MI:ss.ff')) from dual; 

insert into TF_SM_TEST_repair select * from gd_uop_crm.TF_SM_TEST AS OF SCN 14311403342206

create table TF_SM_TEST_repair SELECT * FROM TF_SM_TEST

SELECT * FROM TF_SM_TEST as of TIMESTAMP (SYSTIMESTAMP - INTERVAL '120' minute) where USER_NAME like '%恢复%'

grant select on TF_SM_TEST_repair to gd_uop_crm;

--查询包含某张表的所存储过程PROCEDURE和包 PACKAGE BODY

SELECT * FROM USER_SOURCE WHERE  UPPER(TEXT)  LIKE '%function_test%' --AND TYPE='FUNCTION' ;

SELECT * FROM USER_SOURCE

       WHERE 1=1 and TYPE = 'PACKAGE'

             AND UPPER(TEXT) LIKE '%TF_SM_TEST%';

             

select  distinct object_type from user_objects;

select *  from user_objectS where object_type= 'PACKAGE BODY';

select *  from user_objectS where object_type= 'FUNCTION' AND OBJECT_NAME LIKE '%function_test%';

SELECT * FROM user_objectS WHERE  UPPER(OBJECT_NAME)  LIKE '%function_test%' --AND TYPE='FUNCTION' ;

--查询包含某个字段的所有表

SELECT * FROM dba_tab_columns where column_name='USER_ID'; 

SELECT * FROM user_arguments;

select  * from user_source where type='PACKAGE BODY';

--查询索引属哪个表

select * from user_indexes where index_name ='PK_USER_ID';

--查询表被哪些视图/过程引用

Select owner, object_type, object_name, object_id, status

  from sys.DBA_OBJECTS

 where object_id in (Select object_id

                       from public_dependency

                     connect by prior object_id = referenced_object_id

                      start with referenced_object_id =

                                 (Select object_id

                                    from sys.DBA_OBJECTS

                                   where object_name = 'TF_SM_TEST' -- 这里放 :name

                                  ));

--查询包含某个函数的所存储过程

SELECT * FROM DBA_SOURCE WHERE  TEXT LIKE '%function_test%' --AND TYPE='FUNCTION' ;

select name,locks,pins

from v$db_object_cache

where locks > 0 and pins > 0 and type='PROCEDURE';

select * from v$access where object='pkg_function_test_limit' AND TYPE='PACKAGE';

--查询正在执行的存储过程

 select   b.sid,b.SERIAL#,a.OBJECT,a.OWNER, 'alter system kill session   ' || '''' || b.sid || ',' ||b.SERIAL# ||  ''';' kill_command

               from   SYS.V_$ACCESS a, SYS.V_$session b

               where    a.type = 'PROCEDURE'

                  and   (a.OBJECT like upper('%pkg_function_test_limit%') or

                            a.OBJECT like lower('%pkg_function_test_limit%'))

                 and a.sid = b.sid

                 and b.status = 'ACTIVE';

 --或

 select name from v$db_object_cache where locks > 0 and pins > 0 and type='PROCEDURE';

 --Kill 正在执行的存储过程

 alter system kill session '13565,45909';

--查看表空间大小

SELECT segment_name,OWNER,segment_type,MB  FROM (select segment_name,OWNER,segment_type,bytes/1024/1024 MB from dba_segments 

where tablespace_name='TBS_CL_TEST' 

--and segment_name like '%TF_SM_TEST%'

--and segment_type='TABLE'

)

order by MB desc;

--查看哪个表被锁

select b.owner,b.object_name,a.session_id,a.locked_mode

from v$locked_object a,dba_objects b

where b.object_id = a.object_id and b.OBJECT_NAME like '%TF_SM_TEST%';

--查看是哪个session引起的 b.username,b.sid,b.serial#,logon_time

select a.*,b.*

from v$locked_object a,v$session b

where a.session_id = b.sid and a.session_id in('5427','12066')

order by b.logon_time;

--查询表所占空间

Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents where segment_name like 'TF_SM_TEST%' Group By Segment_Name;

---更改为压缩表

ALTER TABLE TF_SM_TEST move COMPRESS;

--解压

ALTER TABLE TF_SM_TEST move nocompress

--查询表是否是压缩  

select a.COMPRESSION,a.* from USER_TABLES a where a.TABLESPACE_NAME='TBS_CL_TEST' and a.TABLE_NAME like 'TF_SM_TEST%';

--查询值显示一行,用单引号

SELECT TO_CHAR(WMSYS.WM_CONCAT(chr(39)||user_id||chr(39))) EPARCHY_CODES FROM (

SELECT h.user_id FROM TF_SM_TEST H

group by h.user_id);

-- DEL表后收缩表空间

analyze table TF_SM_TEST compute statistics;

select T.*,SEGMENT_NAME,EXTENTS,BLOCKS,INITIAL_EXTENT/1024/1024 init from user_segments T

where SEGMENT_NAME='TF_SM_TEST';

ANALYZE TABLE TF_SM_TEST compute statistics;

alter table TF_SM_TEST enable row movement;

ALTER TABLE TF_SM_TEST  shrink space;

select t.BYTES,partition_name,SEGMENT_NAME,EXTENTS,BLOCKS from user_segments T where 

T.partition_name='PAR_TF_SM_TEST_1'

猜你喜欢

转载自lihong11.iteye.com/blog/2342558