Ever want to drop an old procedure, but you didn't know if it was being used by some other code, perhaps in another schema? Simply check ALL_DEPENDENCIES, right. Except I hate typing those long column names. And what if I want to traverse through the dependencies? So of course, I wrote some scripts.

Never sure what's a dependency vs a reference, so I named them the way I think it works, but they might be backwards.

SHOW_DEPENDENCIES - shows what objects my code (object) uses, and continues down the tree.
SHOW_REFERENCES - shows what objects call my code (object), and continues up the tree.

Both take two parameters: &1 = owner, &2 = object (if you don't know the owner, try the OBJ_TREE script I posted earlier). And both scripts work on the underlying sys objects, so you need to be a DBA (I do a "connect by" on sys.dependency$, since the connect by on ALL_DEPENDENCIES never finished). DEPENDENCIES stops when it finds something owned by SYS, because it just gets too messy to keep showing things (remove the "d_onam <> 'SYS'" clause near the bottom to see for yourself).

An example using some FLOWS_010500 objects (htmldb provides such nice examples):
SQL> @show_dependencies FLOWS_010500 p
.
.PROCEDURE FLOWS_010500.P
. PACKAGE FLOWS_010500.WWV_FLOW_LANG
. SYNONYM PUBLIC.HTP
. PACKAGE FLOWS_010500.WWV_FLOW_FILE_MGR

PL/SQL procedure successfully completed.

here's what happens if I remove the check against SYS objects
SQL> /
.
.PROCEDURE FLOWS_010500.P
. PACKAGE SYS.STANDARD
. PACKAGE FLOWS_010500.WWV_FLOW_LANG
. PACKAGE SYS.STANDARD
. SYNONYM PUBLIC.HTP
. PACKAGE SYS.HTP
. PACKAGE SYS.STANDARD
. PACKAGE FLOWS_010500.WWV_FLOW_FILE_MGR
. PACKAGE SYS.STANDARD
. PACKAGE SYS.SYS_STUB_FOR_PURITY_ANALYSIS

PL/SQL procedure successfully completed.

and here's one going the other direction
SQL> @show_references FLOWS_010500 WWV_FLOW_FILE_MGR
.
.PACKAGE FLOWS_010500.WWV_FLOW_FILE_MGR
. PACKAGE BODY FLOWS_010500.WWV_FLOW_FILE_MGR INVALID
. PACKAGE BODY FLOWS_010500.HTMLDB_UTIL
. PROCEDURE FLOWS_010500.P
. SYNONYM PUBLIC.P
. SYNONYM PUBLIC.WWV_FLOW_FILE_MGR
.
.PACKAGE BODY FLOWS_010500.WWV_FLOW_FILE_MGR INVALID

PL/SQL procedure successfully completed.

the REFERENCES script is also nice to find out where a table is used
SQL> @show_references FLOWS_010500 WWV_FLOW_PREFERENCES$
.
.TABLE FLOWS_010500.WWV_FLOW_PREFERENCES$
. TRIGGER FLOWS_010500.WWV_BIU_FLOW_PREFERENCES
. FUNCTION FLOWS_010500.V
. TRIGGER FLOWS_010500.WWV_BIU_FLOW_COLLECTION INVALID
. FUNCTION FLOWS_010500.NV
. VIEW FLOWS_010500.WWV_FLOW_USERS
. SYNONYM PUBLIC.WWV_FLOW_USERS
. VIEW FLOWS_010500.WWV_FLOW_GROUP_USERS
that one continues on for quite some time

These scripts work on versions 9 and 10. Haven't had the chance to test them on 11 yet, so if you do, and they don't work, let me know. Or better yet, fix them for me ;)

Follow the rest of the discussion on my blog

Views: 1062

Attachments:

Replies to This Discussion

By applying some CSS magic, the extra blank lines inside the pre tags are no more. Great posts by the way. Keep them coming :) I'm also adding your posts here to OraNA.info.
thanks for the magic. the output looks much better now

I had not heard of OraNA.info before - I'll have to spend some time over there. Can you update the post over there to link back here (because the scripts aren't there)?
If you click on any post title on OraNA.info, it links back to the original article.
This is great... is there a way to figure out the CRUD operations done on a table by a plsql unit? There are times, when in addition to the depenedency I need to know if the table is updated, or just selected by the unit.

RSS

Oracle Community On

I'm not a fan of advertising, and so I will not be including any advertisements on OracleCommunity.net. However, managing this community does not come without cost! If you are willing to donate to help pay for the monthly community fees and domain services I accept Bitcoin and PayPal donations.

Donate Bitcoins

Badge

Loading…

Blog Posts

Streamline Your Business Process with Real Estate Data Entry Services

People in the real estate business have to deal with huge volumes of data on a regular basis. It includes the data that is generated from legal documents, property valuation statements, latest commercial and non-commercial property information, etc. This database should be regularly updated and processed properly to help you in your business procedures. With access to relevant real-time data, your business organization can thrive in the commercial real estate market. In…

Continue

Posted by Alvaro Dee on March 27, 2017 at 2:48am

Augment the Speed and Efficiency of Website Development with Joomla

Over the past few years, Joomla has emerged out as one of the greatest platforms for designing, developing, and deploying websites and web applications worldwide. Joomla scales up extremely well, uses less memory and gives a brilliant performance. Hire skilled and experienced Joomla developers to use Joomla CMS for developing simple and complex corporate websites. You can even enhance the functioning of your existing website by using this open source platform.

By outsourcing Joomla…

Continue

Posted by Alvaro Dee on March 20, 2017 at 4:00am

Top 10 Interview Questions & Answers for Java Developers

An organization hiring a Java developer is looking for someone who can code the applications flawlessly. For the period after Java training, the following is a very important list of ten Java interview questions. Make sure you tap the benefits of this comprehensive list of questions shared by our Java counterparts to crack your next interview.

1. What is immutable…

Continue

Posted by Michael Warne on March 17, 2017 at 3:00am

Get the Best Website for Your Business in a Set Time Frame

If you sell products online, you must be knowing how time-consuming and mundane it is to upload products. There are chances of you looking for someone to handle your product data entry tasks. A company that has a wealth of experience and is known for providing its customers with data entry services for a variety of eCommerce solutions can deal efficiently with high volumes of work without any hassle.…

Continue

Posted by Alvaro Dee on March 17, 2017 at 2:47am

© 2017   Created by Steve Karam.   Powered by

Badges  |  Report an Issue  |  Terms of Service