通过shell脚本查看procedure的信息(r2笔记85天)

作者: admin 分类: 公众号存档            0 次浏览 发布时间: 2014-09-04 13:52

公众号:杨建荣的学习笔记 · 作者:r2笔记85天 · 发布:2014-09-04 13:52:20 · 原文链接

在一个schema中,可能含有大量的procedure, 有时候想查看具体的信息,一般得通过toad,plsql dev等工具来查看,有时候在尽可能摆脱图形工具的前提下,想能够尽快的查找一些信息,还是使用shell脚本更快,更准,更直接。

可以使用如下的shell脚本来查找procedure的信息。
以下的脚本可以查找是否有需要的prcedure信息。

PROC_OWNER=`sqlplus -silent $DB_CONN_STR@$SH_DB_SID <<END
set pagesize 40 feedback off verify off heading on echo off
col owner format a20
col object_name format a30
set linesize 150
select owner, object_name,object_id,object_type,aggregate,pipelined,parallel,interface,deterministic,authid from dba_procedures
where owner=upper(‘$1′) and object_type=’PROCEDURE’ and object_name like ‘%’||upper(‘$2′)||’%’
/
exit;
END`

if [ -z “$PROC_OWNER” ]; then
echo “no object exists, please check again”
exit 0
else
echo ‘*******************************************’
echo ” $PROC_OWNER “
echo ‘*******************************************’
fi

以下的脚本可以查看对应的procedure信息

PROC_OWNER=`sqlplus -silent $DB_CONN_STR@$SH_DB_SID <<END
set pagesize 40 feedback off verify off heading on echo off
col owner format a20
col object_name format a30
set linesize 150
select owner, object_name,object_id,object_type,aggregate,pipelined,parallel,interface,deterministic,authid from dba_procedures
where owner=upper(‘$1′) and object_type=’PROCEDURE’ and object_name like ‘%’||upper(‘$2′)||’%’
/
exit;
END`

if [ -z “$PROC_OWNER” ]; then
echo “no object exists, please check again”
exit 0
else
echo ‘*******************************************’
echo ” $PROC_OWNER “
echo ‘*******************************************’
fi

脚本运行的结果如下:

[ora11g@rac1 dbm_lite]$ ksh findproc.sh n1
*******************************************

OWNER OBJECT_NAME OBJECT_ID OBJECT_TYPE AGG PIP PAR INT DET AUTHID
——————– —————————— ———- ————- — — — — — ————
N1 TEST_DUMP_CSV 15163 PROCEDURE NO NO NO NO NO DEFINER
*******************************************
[ora11g@rac1 dbm_lite]$ ksh showproc.sh n1 test_dmp_csv
no object exists, please check again

[ora11g@rac1 dbm_lite]$ ksh showproc.sh n1 test_dump_csv
*******************************************

OWNER OBJECT_NAME OBJECT_ID OBJECT_TYPE AGG PIP PAR INT DET AUTHID
——————– —————————— ———- ————- — — — — — ————
N1 TEST_DUMP_CSV 15163 PROCEDURE NO NO NO NO NO DEFINER
*******************************************
.
procedure test_dump_csv
as
l_rows number;
begin
l_rows := dump_csv( ‘select *
from t
‘,
‘,’, ‘/tmp’, ‘test.dat’ );
end;

admin

杨建荣,《Oracle DBA工作笔记》《MySQL DBA工作笔记》作者,dbaplus社群发起人之一,腾讯云TVP,现任竞技世界系统部经理,拥有十多年数据库开发和运维经验,目前专注于开源技术、运维自动化和性能调优

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注