Home >Database >Mysql Tutorial >Oracle通过shell脚本查看package的信息

Oracle通过shell脚本查看package的信息

WBOY
WBOYOriginal
2016-06-07 16:43:55955browse

有时候想查看一个package的信息,但是对于package的名字不是很确定,比如只知道一个大概,知道一些关键字,这个时候通过图形工具

有时候想查看一个package的信息,但是对于package的名字不是很确定,比如只知道一个大概,知道一些关键字,这个时候通过图形工具是查找不到package的信息的,,而且对于package的信息,我只关心package里面有哪些存储过程,哪些函数等,看看简单的参数情况就可以了,类似sqlplus的desc的形式。

shell脚本的实现如下,

以下的脚本是查看是否有对应的package信息。

PROC_OWNER=`sqlplus -silent $DB_CONN_STR@$SH_DB_SID  set pagesize 50 feedback off verify off heading on echo off
 col owner format a20
 col object_name format a30
 col subobject_name format a10
 set linesize 150
 break on object_name
 select object_name,owner,subobject_name,object_type,object_id, created,last_ddl_time,status
 from dba_objects where object_type like 'PACKAGE%' and object_name like upper('$2%') and owner=upper('$1')
 order by object_name
 /
 exit;
 END`
 if [ -z "$PROC_OWNER" ]; then
 echo "no object exists, please check again"
 exit 0
 else
 echo '*******************************************'
 echo " $PROC_OWNER    "

 

PACK_LIST=` sqlplus -s  $DB_CONN_STR@$SH_DB_SID  col name format a30
 col text format a100
 set linesize 200
 set pages 50
 break on name
 select name,text  from dba_source where owner like UPPER('$1') and name like upper('$2%') and type='PACKAGE'
 and (text like '%PROCEDURE %' or text like '%FUNCTION %' )
 order by name,line;
 exit;
 END`
 echo "  $PACK_LIST    "
 echo '*******************************************'
 fi 
 exit

 运行脚本的情况如下所示。

[ora11g@rac1 dbm_lite]$ ksh findpack.sh sys dbms_metadata
 *******************************************
 
 OBJECT_NAME                    OWNER                SUBOBJECT_ OBJECT_TYPE          OBJECT_ID CREATED  LAST_DDL_ STATUS
 ------------------------------ -------------------- ---------- ------------------- ---------- --------- --------- -------
 DBMS_METADATA                  SYS                            PACKAGE BODY            11981 23-JAN-14 23-JAN-14 VALID
                                SYS                            PACKAGE                  8399 23-JAN-14 23-JAN-14 VALID
 DBMS_METADATA_BUILD            SYS                            PACKAGE                  8401 23-JAN-14 23-JAN-14 VALID
                                SYS                            PACKAGE BODY            11984 23-JAN-14 23-JAN-14 VALID
 DBMS_METADATA_DIFF            SYS                            PACKAGE BODY            11986 23-JAN-14 23-JAN-14 VALID
                                SYS                            PACKAGE                  8405 23-JAN-14 23-JAN-14 VALID
 DBMS_METADATA_DPBUILD          SYS                            PACKAGE BODY            11985 23-JAN-14 23-JAN-14 VALID
                                SYS                            PACKAGE                  8403 23-JAN-14 23-JAN-14 VALID
 DBMS_METADATA_INT              SYS                            PACKAGE BODY            11982 23-JAN-14 23-JAN-14 VALID
                                SYS                            PACKAGE                  9666 23-JAN-14 23-JAN-14 VALID
 DBMS_METADATA_UTIL            SYS                            PACKAGE                  9681 23-JAN-14 23-JAN-14 VALID
                                SYS                            PACKAGE BODY            11983 23-JAN-14 23-JAN-14 VALID   
 
 NAME                          TEXT
 ------------------------------ ----------------------------------------------------------------------------------------------------
 DBMS_METADATA                    FUNCTION open (
                                  PROCEDURE set_filter (
                                  PROCEDURE set_filter (
                                  PROCEDURE set_filter (
                                  PROCEDURE set_count (
                                  PROCEDURE set_xmlformat (
                                  FUNCTION get_query (
                                 

如果想知道更多的package的信息,可以使用如下的脚本。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn