http://www.itpub.net/thread-1499223-10-1.html
93楼
我创建了这张表并填入数据:
CREATE TABLE plch_new_parts
(
partnum NUMBER
, partname VARCHAR2 (50)
)
/
BEGIN
INSERT INTO plch_new_parts (partnum, partname)
VALUES (1, 'MY PART NUMBER 1');
INSERT INTO plch_new_parts (partnum, partname)
VALUES (2, 'MY_PART_NUMBER_2');
INSERT INTO plch_new_parts (partnum, partname)
VALUES (3, 'MY_PART NUMBER_3');
COMMIT;
END;
/
当我执行下列这段代码,屏幕上会显示什么?
DECLARE
l_counts DBMS_SQL.number_table;
BEGIN
l_counts (1) := 0;
l_counts (2) := 0;
l_counts (3) := 0;
l_counts (4) := 0;
FOR rec IN ( SELECT partname
FROM plch_new_parts
ORDER BY partnum)
LOOP
IF rec.partname LIKE 'MY PART NUMBER %'
THEN
l_counts (1) := l_counts (1) + 1;
END IF;
IF rec.partname LIKE 'MY_PART_NUMBER_%'
THEN
l_counts (2) := l_counts (2) + 1;
END IF;
IF rec.partname LIKE 'MY_PART NUMBER_%'
THEN
l_counts (3) := l_counts (3) + 1;
END IF;
IF rec.partname LIKE 'MY?PART?NUMBER?*'
THEN
l_counts (4) := l_counts (4) + 1;
END IF;
END LOOP;
FOR indx IN 1 .. l_counts.COUNT
LOOP
DBMS_OUTPUT.put_line (l_counts (indx));
END LOOP;
END;
/
(A)
1 1 1 0
(B)
1 3 2 0
(C)
0 0 0 3
(D)
3 3 3 3
(E)
1 3 2 3
运行结果如下
SQL> DECLARE
2 l_counts DBMS_SQL.number_table;
3
4 BEGIN
5 l_counts (1) := 0;
6 l_counts (2) := 0;
7 l_counts (3) := 0;
8 l_counts (4) := 0;
9
10 FOR rec IN ( SELECT partname
11 FROM plch_new_parts
12 ORDER BY partnum)
13 LOOP
14 IF rec.partname LIKE 'MY PART NUMBER %'
15 THEN
16 l_counts (1) := l_counts (1) + 1;
17 END IF;
18
19 IF rec.partname LIKE 'MY_PART_NUMBER_%'
20 THEN
21 l_counts (2) := l_counts (2) + 1;
22 END IF;
23
24 IF rec.partname LIKE 'MY_PART NUMBER_%'
25 THEN
26 l_counts (3) := l_counts (3) + 1;
27 END IF;
28
29 IF rec.partname LIKE 'MY?PART?NUMBER?*'
30 THEN
31 l_counts (4) := l_counts (4) + 1;
32 END IF;
33 END LOOP;
34
35 FOR indx IN 1 .. l_counts.COUNT
36 LOOP
37 DBMS_OUTPUT.put_line (l_counts (indx));
38 END LOOP;
39 END;
40 /
1
3
2
PL/SQL procedure successfully completed
SQL>
答案B
答案说明96楼
2011-10-28答案B.
_匹配单个字符,%匹配任意个字符,*和?是忽悠人的。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:http://blog.itpub.net/680385/viewspace-2659867/