2011-11-16 %ROWTYPE的声明与使用
http://www.itpub.net/thread-1499223-15-1.html
150楼
我连接到HR用户并运行了如下语句:
CREATETABLEplch_parts(partnumNUMBER,partnameVARCHAR2(50))/BEGININSERTINTOplch_partsVALUES(1,'Chassis');COMMIT;END;/CREATEORREPLACEPACKAGEplch_pkgISTYPEparts_tISTABLEOFplch_parts%ROWTYPEINDEXBYPLS_INTEGER;PROCEDUREplch_show_parts(parts_inINparts_t);END;/CREATEORREPLACEPACKAGEBODYplch_pkgISPROCEDUREplch_show_parts(parts_inINparts_t)ISBEGINFORindxIN1..parts_in.COUNTLOOPDBMS_OUTPUT.put_line(parts_in(indx).partname);ENDLOOP;END;END;/GRANTSELECTONplch_partsTOscott/GRANTEXECUTEONplch_pkgTOscott/
然后我又用SCOTT用户连接并创建了这张表:
CREATETABLEplch_parts(partnumNUMBER,partnameVARCHAR2(50))/BEGININSERTINTOplch_partsVALUES(100,'Wheel');COMMIT;END;/
下列的哪些选项包含了下列语句块的一个声明部分,从而使得这个块执行之后"Wheel"会被显示出来?
BEGINSELECT*BULKCOLLECTINTOl_partsFROMplch_parts;hr.plch_pkg.plch_show_parts(l_parts);END;
(A)
DECLARETYPEparts_tISTABLEOFplch_parts%ROWTYPEINDEXBYPLS_INTEGER;l_partsparts_t;
SQL>DECLARE2TYPEparts_tISTABLEOFplch_parts%ROWTYPEINDEXBYPLS_INTEGER;34l_partsparts_t;56BEGIN7SELECT*BULKCOLLECTINTOl_partsFROMplch_parts;89yoga.plch_pkg.plch_show_parts(l_parts);10END;11/DECLARETYPEparts_tISTABLEOFplch_parts%ROWTYPEINDEXBYPLS_INTEGER;l_partsparts_t;BEGINSELECT*BULKCOLLECTINTOl_partsFROMplch_parts;yoga.plch_pkg.plch_show_parts(l_parts);END;ORA-06550:第9行,第3列:PLS-00306:调用'PLCH_SHOW_PARTS'时参数个数或类型错误ORA-06550:第9行,第3列:PL/SQL:StatementignoredSQL>
(B)
DECLARETYPEparts_tISTABLEOFhr.plch_parts%ROWTYPEINDEXBYPLS_INTEGER;l_partsparts_t;
SQL>DECLARE2TYPEparts_tISTABLEOFyoga.plch_parts%ROWTYPEINDEXBYPLS_INTEGER;34l_partsparts_t;56BEGIN7SELECT*BULKCOLLECTINTOl_partsFROMplch_parts;89yoga.plch_pkg.plch_show_parts(l_parts);10END;11/DECLARETYPEparts_tISTABLEOFyoga.plch_parts%ROWTYPEINDEXBYPLS_INTEGER;l_partsparts_t;BEGINSELECT*BULKCOLLECTINTOl_partsFROMplch_parts;yoga.plch_pkg.plch_show_parts(l_parts);END;ORA-06550:第9行,第3列:PLS-00306:调用'PLCH_SHOW_PARTS'时参数个数或类型错误ORA-06550:第9行,第3列:PL/SQL:StatementignoredSQL>
(C)
DECLAREl_partshr.plch_pkg.parts_t;
SQL>DECLARE2l_partsyoga.plch_pkg.parts_t;34BEGIN5SELECT*BULKCOLLECTINTOl_partsFROMplch_parts;67yoga.plch_pkg.plch_show_parts(l_parts);8END;9/WheelPL/SQLproceduresuccessfullycompletedSQL>
(D)
DECLARESUBTYPEparts_tIShr.plch_pkg.parts_t;l_partsparts_t;
SQL>DECLARE2SUBTYPEparts_tISyoga.plch_pkg.parts_t;3l_partsparts_t;45BEGIN6SELECT*BULKCOLLECTINTOl_partsFROMplch_parts;78yoga.plch_pkg.plch_show_parts(l_parts);9END;10/WheelPL/SQLproceduresuccessfullycompletedSQL>
实测用yoga代替hr,test代替scott
答案在158楼
2011-11-16 答案CD.
%ROWTYPE是一种记录,如果你定义两个结构一模一样的记录类型,它们仍然不能够互换,会报类型不匹配的错误。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。