Heim >Datenbank >MySQL-Tutorial >Oracle 查看表存储过程触发器函数等对象定义语句的方法

Oracle 查看表存储过程触发器函数等对象定义语句的方法

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-07 16:59:361344Durchsuche

有时候,我们想查看表,存储,触发器等对象的定语语句,有以下两种方法:1. 查 all_source 表2. 用 DBMS_METADATA 包。 一. 通过

有时候,我们想查看表,存储,,触发器等对象的定语语句,有以下两种方法:

1. 查 all_source 表

2. 用 DBMS_METADATA 包。


一. 通过 all_source 表


先来确认下,通过all_source 表可以查看哪些类型的对象:

SQL> SELECT distinct type FROM ALL_SOURCE;

TYPE

------------

PROCEDURE

PACKAGE

PACKAGE BODY

LIBRARY

TYPE BODY

TRIGGER

FUNCTION

JAVA SOURCE

TYPE


从以上的结果我们可以看到,我们可以通过该表查询的对象.


查看存储过程定义语句:

SQL> SELECT text FROM ALL_SOURCE where TYPE='PROCEDURE' AND NAME ='ADDCUSTBUSS';

TEXT

--------------------------------------------------------------------------------

PROCEDURE addcustbuss (

   acustid       IN       custbuss.custid%TYPE,

   bussname      IN       custbuss.businessname%TYPE,

   aopid         IN       custbuss.opid%TYPE,

   acreatetime   IN       custbuss.createtime%TYPE,

   aCustTel      IN       custbuss.CustTel%TYPE,--客户电话

   aContact      IN       custbuss.Contact%TYPE,--联系人

   aFeedback     IN       custbuss.Feedback%TYPE,--客户反馈

   asid          OUT      custbuss.ID%TYPE,

   RESULT        OUT      INTEGER

)

IS

BEGIN

   RESULT := -1;


   SELECT getarea || TO_CHAR (idseq.NEXTVAL, 'FM0999999999')

     INTO asid

     FROM DUAL;


   INSERT INTO custbuss

               (ID, custid, businessname, opid, createtime,CustTel,Contact,Feedback 

        )

        VALUES (asid, acustid, bussname, aopid, acreatetime,aCustTel,aContact,aFeedback

               );

   RESULT := 0;

EXCEPTION

   WHEN OTHERS

   THEN

      RESULT := -1;

END addcustbuss;

已选择32行。

SQL>


查看触发器 定义语句

SQL> SELECT text FROM ALL_SOURCE where TYPE='TRIGGER' AND NAME ='TRDB_TEAM';

TEXT

-----------------------------------------------------------------------------

TRIGGER "NEWCCS".trdb_team

   BEFORE DELETE

   ON team

   REFERENCING NEW AS NEW OLD AS OLD

   FOR EACH ROW

BEGIN

   DELETE FROM team_teamgroup_map

         WHERE teamid = :OLD.teamid;

END trdb_team;

已选择10行。


方法也比较简单,修改TYPE 和 NAME 就可以。 注意要大写。

linux

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn