http://www.itpub.net/thread-1499223-20-1.html

197楼

我在当前会话把PL/Scope打开:

ALTERSESSIONSETplscope_settings='identifiers:all'/

然后我创建了这个包头:

CREATEORREPLACEPACKAGEplch_pkgISPROCEDUREdo_stuff;ENDplch_pkg;/

下列哪些查询实现了一个包体,从而使得下列的查询:

SELECTname,usageFROMuser_identifiersWHEREobject_name='PLCH_PKG'ANDtypeIN('PROCEDURE','FUNCTION')ORDERBYusage/

会输出这些结果:

NAMEUSAGE---------------------DO_STUFFCALLDO_STUFFDECLARATIONDO_STUFFDECLARATIONDO_STUFFDEFINITIONDO_STUFFDEFINITION

(A)

CREATEORREPLACEPACKAGEBODYplch_pkgISPROCEDUREdo_stuff(number_inINNUMBER)ISBEGINNULL;ENDdo_stuff;PROCEDUREdo_stuffISBEGINNULL;ENDdo_stuff;ENDplch_pkg;/

SQL>SELECTname,usage2FROMuser_identifiers3WHEREobject_name='PLCH_PKG'4ANDtypeIN('PROCEDURE','FUNCTION')5ORDERBYusage6/NAMEUSAGE-------------------------------------------------------------------------------------------DO_STUFFDECLARATIONDO_STUFFDECLARATIONDO_STUFFDEFINITIONDO_STUFFDEFINITIONSQL>

(B)

CREATEORREPLACEPACKAGEBODYplch_pkgISPROCEDUREdo_stuffISBEGINNULL;ENDdo_stuff;ENDplch_pkg;/

SQL>SQL>SELECTname,usage2FROMuser_identifiers3WHEREobject_name='PLCH_PKG'4ANDtypeIN('PROCEDURE','FUNCTION')5ORDERBYusage6/NAMEUSAGE-------------------------------------------------------------------------------------------DO_STUFFDECLARATIONDO_STUFFDEFINITIONSQL>

(C)

CREATEORREPLACEPACKAGEBODYplch_pkgISPROCEDUREdo_stuff(number_inINNUMBER)ISBEGINNULL;ENDdo_stuff;PROCEDUREdo_stuffISBEGINdo_stuff(1);ENDdo_stuff;ENDplch_pkg;/

SQL>SELECTname,usage2FROMuser_identifiers3WHEREobject_name='PLCH_PKG'4ANDtypeIN('PROCEDURE','FUNCTION')5ORDERBYusage6/NAMEUSAGE-------------------------------------------------------------------------------------------DO_STUFFCALLDO_STUFFDECLARATIONDO_STUFFDECLARATIONDO_STUFFDEFINITIONDO_STUFFDEFINITIONSQL>

(D)

CREATEORREPLACEPACKAGEBODYplch_pkgISPROCEDUREdo_stuff(number_inINNUMBER)ISBEGINNULL;ENDdo_stuff;PROCEDUREdo_stuffISBEGINNULL;ENDdo_stuff;BEGINdo_stuff(1);ENDplch_pkg;/

SQL>SELECTname,usage2FROMuser_identifiers3WHEREobject_name='PLCH_PKG'4ANDtypeIN('PROCEDURE','FUNCTION')5ORDERBYusage6/NAMEUSAGE-------------------------------------------------------------------------------------------DO_STUFFCALLDO_STUFFDECLARATIONDO_STUFFDECLARATIONDO_STUFFDEFINITIONDO_STUFFDEFINITIONSQL>

答案说明在202楼

2011-11-29 答案CD

A:在此选项中do_stuff被重载,所以DECLARATION 和 DEFINITION的显示行数是正确的。但是,并没有对do_stuff的调用。

B:为了使得DECLARATION 和 DEFINITION各显示两行,do_stuff必须被重载。

C:既有重载又有调用,正确。

D:同上,只是调用的地方不同。