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

93楼

我创建了这张表并填入数据:

CREATETABLEplch_new_parts(partnumNUMBER,partnameVARCHAR2(50))/BEGININSERTINTOplch_new_parts(partnum,partname)VALUES(1,'MYPARTNUMBER1');INSERTINTOplch_new_parts(partnum,partname)VALUES(2,'MY_PART_NUMBER_2');INSERTINTOplch_new_parts(partnum,partname)VALUES(3,'MY_PARTNUMBER_3');COMMIT;END;/

当我执行下列这段代码,屏幕上会显示什么?

DECLAREl_countsDBMS_SQL.number_table;BEGINl_counts(1):=0;l_counts(2):=0;l_counts(3):=0;l_counts(4):=0;FORrecIN(SELECTpartnameFROMplch_new_partsORDERBYpartnum)LOOPIFrec.partnameLIKE'MYPARTNUMBER%'THENl_counts(1):=l_counts(1)+1;ENDIF;IFrec.partnameLIKE'MY_PART_NUMBER_%'THENl_counts(2):=l_counts(2)+1;ENDIF;IFrec.partnameLIKE'MY_PARTNUMBER_%'THENl_counts(3):=l_counts(3)+1;ENDIF;IFrec.partnameLIKE'MY?PART?NUMBER?*'THENl_counts(4):=l_counts(4)+1;ENDIF;ENDLOOP;FORindxIN1..l_counts.COUNTLOOPDBMS_OUTPUT.put_line(l_counts(indx));ENDLOOP;END;/

(A)

1110

(B)

1320

(C)

0003

(D)

3333

(E)

1323

运行结果如下

SQL>DECLARE2l_countsDBMS_SQL.number_table;34BEGIN5l_counts(1):=0;6l_counts(2):=0;7l_counts(3):=0;8l_counts(4):=0;910FORrecIN(SELECTpartname11FROMplch_new_parts12ORDERBYpartnum)13LOOP14IFrec.partnameLIKE'MYPARTNUMBER%'15THEN16l_counts(1):=l_counts(1)+1;17ENDIF;1819IFrec.partnameLIKE'MY_PART_NUMBER_%'20THEN21l_counts(2):=l_counts(2)+1;22ENDIF;2324IFrec.partnameLIKE'MY_PARTNUMBER_%'25THEN26l_counts(3):=l_counts(3)+1;27ENDIF;2829IFrec.partnameLIKE'MY?PART?NUMBER?*'30THEN31l_counts(4):=l_counts(4)+1;32ENDIF;33ENDLOOP;3435FORindxIN1..l_counts.COUNT36LOOP37DBMS_OUTPUT.put_line(l_counts(indx));38ENDLOOP;39END;40/132PL/SQLproceduresuccessfullycompletedSQL>

答案B

答案说明96楼

2011-10-28答案B._匹配单个字符,%匹配任意个字符,*和?是忽悠人的。