2011-11-29 11G New function: PL/SCOPE
Http://www.itpub.net/thread-1499223-20-1.html
197 floor
I opened PL/Scope in the current session:
ALTER SESSION SET plscope_settings='identifiers:all'/
Then I created this header:
CREATE OR REPLACE PACKAGE plch_pkgIS PROCEDURE do_stuff;END plch_pkg;/
Which of the following queries implements a packet body, resulting in the following queries:
SELECT name, usage FROM user_identifiersWHERE object_name = 'PLCH_PKG' AND type IN (' PROCEDURE', 'FUNCTION') ORDER BY usage/
These results are output:
NAME USAGE-DO_STUFF CALL DO_STUFF DECLARATIONDO_STUFF DECLARATIONDO_STUFF DEFINITIONDO_STUFF DEFINITION
(A)
CREATE OR REPLACE PACKAGE BODY plch_pkgIS PROCEDURE do_stuff (number_in IN NUMBER) IS BEGIN NULL; END do_stuff; PROCEDURE do_stuff IS BEGIN NULL; END do_stuff;END plch_pkg / SQL > SELECT name, usage 2 FROM user_identifiers 3 WHERE object_name = 'PLCH_PKG' 4 AND type IN (' PROCEDURE' 'FUNCTION') 5 ORDER BY usage 6 / NAME USAGE- -- DO_STUFF DECLARATIONDO_STUFF DECLARATIONDO_STUFF DEFINITIONDO_STUFF DEFINITIONSQL >
(B)
CREATE OR REPLACE PACKAGE BODY plch_pkgIS PROCEDURE do_stuff IS BEGIN NULL; END do_stuff;END plch_pkg / SQL > SQL > SELECT name, usage 2 FROM user_identifiers 3 WHERE object_name = 'PLCH_PKG' 4 AND type IN (' PROCEDURE' 'FUNCTION') 5 ORDER BY usage 6 / NAME USAGE- -- DO_STUFF DECLARATIONDO_STUFF DEFINITIONSQL >
(C)
CREATE OR REPLACE PACKAGE BODY plch_pkgIS PROCEDURE do_stuff (number_in IN NUMBER) IS BEGIN NULL; END do_stuff; PROCEDURE do_stuff IS BEGIN do_stuff (1); END do_stuff;END plch_pkg / SQL > SELECT name, usage 2 FROM user_identifiers 3 WHERE object_name = 'PLCH_PKG' 4 AND type IN (' PROCEDURE' 'FUNCTION') 5 ORDER BY usage 6 / NAME USAGE- -- DO_STUFF CALLDO_STUFF DECLARATIONDO_STUFF DECLARATIONDO_STUFF DEFINITIONDO_STUFF DEFINITIONSQL >
(D)
CREATE OR REPLACE PACKAGE BODY plch_pkgIS PROCEDURE do_stuff (number_in IN NUMBER) IS BEGIN NULL; END do_stuff; PROCEDURE do_stuff IS BEGIN NULL; END do_stuff;BEGIN do_stuff (1); END plch_pkg / SQL > SELECT name, usage 2 FROM user_identifiers 3 WHERE object_name = 'PLCH_PKG' 4 AND type IN (' PROCEDURE' 'FUNCTION') 5 ORDER BY usage 6 / NAME USAGE- -- DO_STUFF CALLDO_STUFF DECLARATIONDO_STUFF DECLARATIONDO_STUFF DEFINITIONDO_STUFF DEFINITIONSQL >
The answer is on the 202 floor.
2011-11-29 answer CD
A: do_stuff is overloaded in this option, so the number of rows displayed by DECLARATION and DEFINITION is correct. However, there is no call to do_stuff.
B: in order for DECLARATION and DEFINITION to display two lines each, do_stuff must be overloaded.
C: both overloading and calling, correct.
D: it's the same as above, but the place where it is called is different.