CONTINUE-WHEN语句(挑战题编号000003)
先预先执行以下代码:
CREATE TABLE plch_plants
(
species_name VARCHAR2 (100),
common_name VARCHAR2 (100)
)
/
BEGIN
INSERT INTO plch_plants
VALUES ('Alianthus', 'Tree of Heaven');
INSERT INTO plch_plants
VALUES ('Arborvitae', 'Northern White Cedar');
INSERT INTO plch_plants
VALUES ('Oleaster', 'Russian Olive');
COMMIT;
END;
/
问题:运行以下哪几个选项后,屏幕会显示六次” Arborvitae”,其它名字不显示:
选项1:
BEGIN
<<months>>
FOR indx IN 1 .. 6
LOOP
<<plants>>
FOR rec IN ( SELECT *
FROM plch_plants
ORDER BY common_name)
LOOP
DBMS_OUTPUT.put_line (rec.species_name);
CONTINUE months WHEN indx > 2
OR INSTR (rec.common_name, 'e') > 0;
END LOOP;
END LOOP;
END;
/
选项2:
BEGIN
<<months>>
FOR indx IN 1 .. 6
LOOP
<<plants>>
FOR rec IN ( SELECT *
FROM plch_plants
ORDER BY common_name)
LOOP
CONTINUE plants WHEN INSTR (rec.common_name, 'e') > 0;
DBMS_OUTPUT.put_line (rec.species_name);
END LOOP;
CONTINUE months WHEN indx > 2;
END LOOP;
END;
/
选项3:
BEGIN
<<months>>
FOR indx IN 1 .. 6
LOOP
<<plants>>
FOR rec IN ( SELECT *
FROM plch_plants
ORDER BY common_name)
LOOP
DBMS_OUTPUT.put_line (rec.species_name);
EXIT WHEN INSTR (rec.common_name, 'e') > 0;
END LOOP;
CONTINUE months WHEN indx > 2;
END LOOP;
END;
/
选项4:
BEGIN
<<months>>
FOR indx IN 1 .. 6
LOOP
<<plants>>
FOR rec IN ( SELECT *
FROM plch_plants
ORDER BY common_name)
LOOP
DBMS_OUTPUT.put_line (rec.species_name);
CONTINUE months WHEN INSTR (rec.common_name, 'e') > 0;
END LOOP;
END LOOP;
END;
/
答案:http://www.anguora.com/plsql挑战答案/
分类: PL/SQL挑战