有时候,我们想查看表,存储,触发器等对象的定语语句,有以下两种方法:1. 查 all_source 表2. 用 DBMS_METADATA 包。 一. 通过 all_source 表 先来确认下,通过all_source 表可以查看哪些类型的对象:SQL> SELECT distinct type FROM ALL_SOURCE;TYPE------------PROCEDUREPACKAGEPACKAGE BODYLIBRARYTYPE BODYTRIGGERFUNCTIONJAVA SOURCETYPE 从以上的结果我们可以看到,我们可以通过该表查询的对象. 查看存储过程定义语句: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)ISBEGIN 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 ROWBEGIN DELETE FROM team_teamgroup_map WHERE teamid = :OLD.teamid;END trdb_team;已选择10行。 方法也比较简单,修改TYPE 和 NAME 就可以。 注意要大写。