oracle script 积累

本文提供了一系列 Oracle SQL 脚本示例,包括设置环境变量、查询引用表、显示当前执行的 SQL 语句及会话资源消耗等。这些脚本适用于数据库管理员进行日常维护工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


define_editor='"C:\Program Files\Notepad++\notepad++.exe"';
define_editor='vim';
set echo on;
set time on;
set pages 9999;
set linesize 9999;
set serveroutput on;
set timing on;
set feed 1;
col object_name format a30;
col column_name format a10
alter session set NLS_LANGUAGE='AMERICAN';


create or replace procedure find_quoter(i_tbl_name varchar2)
as
quoter_name varchar2(100);
cursor quoter_cur is
SELECT u1.TABLE_NAME AS quoter
FROM user_constraints u1,
user_constraints u2
WHERE u1.constraint_type='R'
AND u1.R_CONSTRAINT_NAME = u2.CONSTRAINT_NAME
AND u2.table_name = upper(i_tbl_name);
begin
dbms_output.put_line('--------------------------------------------');
open quoter_cur;
loop
fetch quoter_cur into quoter_name;
exit when quoter_cur%NOTFOUND;
dbms_output.put_line(quoter_name);
end loop;
close quoter_cur;
dbms_output.put_line('--------------------------------------------');
exception
when others
then
dbms_output.put_line('Error: ' || sqlerrm);
end;
/


select count(*) from dictionary where instr(comments, 'index')>0;


加在login.sql或glogin.sql文件的后面:

DEFINE gname = 'not connected'
COLUMN global_name new_value gname
SET termout off
SELECT USER ||'@'|| REPLACE (GLOBAL_NAME, '.WORLD', NULL) GLOBAL_NAME
FROM GLOBAL_NAME;
SET termout on
SET sqlprompt '&&gname> '

这样每次登录SQLPLUS提示符会自动更改为“当前用户名@全局数据库名> ”的形式。

10g以下版本在登录后切换用户的情况下,提示符不能自动更新。


查询主键
select  tt.column_name
from user_constraints t, user_ind_columns tt
where t.table_name =upper('ECCAP_USER_PROVIDER')
and tt.table_name=t.table_name
and t.constraint_type='P'
and t.index_name = tt.index_name


 SELECT */*dbl.lock_type, dbl.mode_held, dbl.blocking_others, dbo.object_name, dbo.object_type*/
FROM dba_locks dbl,
dba_objects dbo,
v$session v
WHERE v.sid = dbl.session_id
and dbo.object_id = dbl.lock_id1
AND v.username = 'HR'


query the current executing sql
 SELECT u.sid                      ,
SUBSTR(u.username,1,12) user_name,
s.sql_text
FROM v$sql s,
v$session u
WHERE s.hash_value = u.sql_hash_value
AND sql_text NOT LIKE '%from v$sql s, v$session u%'
ORDER BY u.sid;



query the resource that has been consumed by the session
 SELECT yt.name,
st.value
FROM v$sesstat st,
v$sysstat yt ,
v$session vs
WHERE vs.sid = st.sid
AND yt.statistic# = st.statistic#
AND vs.username ='CHANG'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值