Oracle 常用SQL整理

2021-08-30 15:23:46 字數 2026 閱讀 5806

//啟用約束

alter table 表名 enable constraint 約束名

//禁用約束

alter table 表名 disable constraint 約束名

//查詢約束所屬的表

select table_name from dba_constraints where constraint_name = 約束名 and constraint_type = 'r';

//查詢表名和表的記錄數

analyze table 表名 compute statistics;

select t.table_name,t.num_rows from user_tables t

select t.table_name,t.num_rows from user_tables t (此sql不精確)

//精確統計

先建立function

create or replace function count_rows(table_name in varchar2,

owner in varchar2 default null)

return number authid current_user is

num_rows number;

stmt varchar2(2000);

begin

if owner is null then

stmt := 'select count(*) from "' || table_name || '"';

else

stmt := 'select count(*) from "' || owner || '"."' || table_name || '"';

end if;

execute immediate stmt

into num_rows;

return num_rows;

end;

再執行sql:

select table_name, count_rows(table_name) nrows from user_tables where count_rows(table_name) >=1;

//查詢哪些表被鎖住

select p.spid,

a.serial#,

c.object_name,

b.session_id,

b.oracle_username,

b.os_user_name

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;

檢視 哪些表 被鎖了

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;

解除鎖定:

--alter system kill session 'sid, serial#';

alter system kill session 'xx, xx';

//查詢oracle時區

select dbtimezone from dual; // 資料庫時區

select sessiontimezone from dual; //資料庫當前會話時區

// 根據sqlid 查詢殺會話的sql

select 'alter system kill session '''|| t.sid||','||t.serial#||''';' from v$session t where t.sql_id='0nx7fbv1w5xg2';

Oracle常用SQl整理

檢視新執行sql select from v sqlarea t where t.first load time like 2011 11 04 11 order by t.first load time desc 1.檢視oracle資料庫表是否被鎖住 select a.b.sid,b.seria...

Oracle常用sql整理

建立表空間 create tablespace tablespacename datafile opt oracle oradata orcl tablespacename.dbf size 500m autoextend on next 5m maxsize unlimited 建立表空間建立使用...

oracle資料庫常用sql整理

日期獲取 select trunc sysdate,yyyy from dual 獲取當前年第一天 select last day add months trunc sysdate,y 1 1 86400,11 from dual 獲取當前年最後一天 到時分秒 select trunc sysdat...