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

在一个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;

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2014-09-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨建荣的学习笔记

生产环境sql语句调优实战第七篇(r2笔记99天)

在数据迁移完成之后,开始了例行的后期数据库维护,早上一来就发现了一个sql执行时间很长了。达到了37279秒。最后在改进调优之后执行速度在1分钟以内。 这个速度...

35980
来自专栏乐沙弥的世界

ORA-02409:超时:分布式事务处理等待锁定ORA-02063

ORA-02409:超时:分布式事务处理等待锁定ORA-02063 一、错误现象与环境     前端应用程序运行时出现下面的错误提示: 事件添加失败:O...

13620
来自专栏杨建荣的学习笔记

关于等待事件"read by other session"(r3笔记第89天)

在查看数据库负载的时候,发现早上10点开始到12点的这两个钟头,系统负载异常的高。于是抓取了一个awr报告。 Snap IdSnap TimeSessions...

30390
来自专栏杨建荣的学习笔记

CPU 100%负载的性能优化分析(r7笔记第40天)

今天收到报警邮件,提示在短时间内DB time有了很大的抖动。报警邮件如下: ZABBIX-监控系统: ------------------------...

36840
来自专栏乐沙弥的世界

对比 PL/SQL profiler 剖析结果

      使用PL/SQL PROFILER 剖析PL/SQL代码是快速定位PL/SQL代码段最有效的方法。在上一篇文章使用PL/SQL PROFILER 定...

14010
来自专栏数据库新发现

如何使用USE_CONCAT提示

USE_CONCAT提示强迫优化器扩展查询中的每一个OR谓词为独立的查询块. 最后合并所有查询块的结果,返回结果集给用户。

14220
来自专栏杨建荣的学习笔记

关于drop user的cascade选项解惑(52天)

在数据库中,有时候需要删除用户,大多数时候都需要使用cascade选项,有些时候却不需要,想知道在这个简单的命令之后数据库倒底在干什么, 这时候给一些指定的操作...

40180
来自专栏乐沙弥的世界

PL/SQL 包编译时hang住的处理

       最近PL/SQL包在编译时被hang住,起初以为是所依赖的对象被锁住。结果出乎意料之外。下面直接看代码演示。

9960
来自专栏数据和云

追本溯源:Oracle 只读表空间的探索实践

作者简介 ? 胡中豪 云和恩墨西区交付工程师,多年一线 DBA 经验,曾服务于运营商、电网、政府行业、银行等行业客户;擅长数据库故障处理、性能优化、实施升级 本...

29730
来自专栏deed博客

Oracle在Linux下安装

27420

扫码关注云+社区

领取腾讯云代金券