2011-10-20 %TYPE的使用
http://www.itpub.net/thread-1499223-7-1.html
65楼
我创建了这些类型和表:
CREATETYPEplch_food_tASOBJECT(nameVARCHAR2(100));/CREATEorreplaceTYPEplch_food_ntISTABLEOFVARCHAR2(100)/CREATETABLEplch_food(nameVARCHAR2(100))/CREATEORREPLACEPACKAGEplch_pkgISTYPEfood_rtISRECORD(nameVARCHAR2(100));END;/
下面的哪些选项在执行之后将会显示"Brussels Sprouts"?
(A)
DECLAREl_varplch_food.name%TYPE:='BrusselsSprouts';BEGINDBMS_OUTPUT.put_line(l_var);END;/
SQL>DECLARE2l_varplch_food.name%TYPE:='BrusselsSprouts';3BEGIN4DBMS_OUTPUT.put_line(l_var);5END;6/BrusselsSproutsPL/SQLproceduresuccessfullycompletedSQL>
(B)
DECLAREl_varplch_food_nt%TYPE:='BrusselsSprouts';BEGINDBMS_OUTPUT.put_line(l_var);END;/
SQL>DECLARE2l_varplch_food_nt%TYPE:='BrusselsSprouts';3BEGIN4DBMS_OUTPUT.put_line(l_var);5END;6/DECLAREl_varplch_food_nt%TYPE:='BrusselsSprouts';BEGINDBMS_OUTPUT.put_line(l_var);END;ORA-06550:第2行,第12列:PLS-00206:%TYPE必须用于变量,列,字段或属性,而不是'PLCH_FOOD_NT'ORA-06550:第2行,第12列:PL/SQL:ItemignoredORA-06550:第4行,第26列:PLS-00320:此表达式的类型声明不完整或格式不正确ORA-06550:第4行,第4列:PL/SQL:StatementignoredSQL>
(C)
DECLAREl_varplch_food_t.name%TYPE:='BrusselsSprouts';BEGINDBMS_OUTPUT.put_line(l_var);END;/
SQL>DECLARE2l_varplch_food_t.name%TYPE:='BrusselsSprouts';3BEGIN4DBMS_OUTPUT.put_line(l_var);5END;6/DECLAREl_varplch_food_t.name%TYPE:='BrusselsSprouts';BEGINDBMS_OUTPUT.put_line(l_var);END;ORA-06550:第2行,第12列:PLS-00206:%TYPE必须用于变量,列,字段或属性,而不是'PLCH_FOOD_T.NAME'ORA-06550:第2行,第12列:PL/SQL:ItemignoredORA-06550:第4行,第26列:PLS-00320:此表达式的类型声明不完整或格式不正确ORA-06550:第4行,第4列:PL/SQL:StatementignoredSQL>
(D)
DECLAREl_varplch_pkg.food_rt.name%TYPE:='BrusselsSprouts';BEGINDBMS_OUTPUT.put_line(l_var);END;/
SQL>DECLARE2l_varplch_pkg.food_rt.name%TYPE:='BrusselsSprouts';3BEGIN4DBMS_OUTPUT.put_line(l_var);5END;6/DECLAREl_varplch_pkg.food_rt.name%TYPE:='BrusselsSprouts';BEGINDBMS_OUTPUT.put_line(l_var);END;ORA-06550:第2行,第12列:PLS-00206:%TYPE必须用于变量,列,字段或属性,而不是'PLCH_PKG.FOOD_RT.NAME'ORA-06550:第2行,第12列:PL/SQL:ItemignoredORA-06550:第4行,第26列:PLS-00320:此表达式的类型声明不完整或格式不正确ORA-06550:第4行,第4列:PL/SQL:StatementignoredSQL>
答案A
答案说明70楼
2011-10-20答案AD为什么不行?你不能对记录类型直接使用%TYPE,必须先声明一个基于该记录类型的变量,然后对这个变量使用%TYPE:
DECLAREl_foodplch_pkg.food_rt;l_varl_food.name%TYPE:='BrusselsSprouts';BEGINDBMS_OUTPUT.put_line(l_var);END;/
SQL>DECLARE2l_foodplch_pkg.food_rt;3l_varl_food.name%TYPE:='BrusselsSprouts';4BEGIN5DBMS_OUTPUT.put_line(l_var);6END;7/BrusselsSproutsPL/SQLproceduresuccessfullycompletedSQL>
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。