Sie sind auf Seite 1von 4

Test: Section 5 Quiz

Review your answers, feedback, and question scores below. An asterisk (*) indicates a correct answer.

Section 5 Quiz
(Answer all questions in this section)
1.Using parameters with a cursor, you can open and close the cursor several times in a
block, returning a different active set each time. True or False? Mark for Review
(1) Points
True (*)

False

Correct

2.What is missing from the following cursor declaration?


Mark for Review
CURSOR emp_curs (1) Points
IS
SELECT * FROM departments
WHERE location_id = p_loc_id;
The declaration is invalid. You cannot reference a cursor parameter in a WHERE
clause.
A parameter is missing. The parameter should be coded as: (p_loc_id NUMBER) (*)

Nothing is wrong; the cursor declaration is correct.

A parameter is missing. The parameter should be coded as: (p_loc_id IN NUMBER)

Correct

3.Which of the following statements about the %ISOPEN cursor attribute is true?
Mark for Review
(1) Points
You can issue the %ISOPEN cursor attribute only when more than one record is
returned.
You can issue the %ISOPEN cursor attribute when a cursor is open or closed. (*)

If a cursor is open, then the value of %ISOPEN is false.

You can issue the %ISOPEN cursor attribute only when a cursor is open.

Correct

4.You can reference explicit cursor attributes directly in a SQL statement. True or False?
Mark for Review
(1) Points
True

False (*)

Correct

5.You cannot OPEN or CLOSE an implicit cursor. Why not?


Mark for Review
(1) Points
Because an implicit cursor is always called SQL.

Because an implicit cursor is OPENed and CLOSEd automatically by Oracle. (*)

Correct

Section 5 Quiz
(Answer all questions in this section)
6. You must make sure you have the same number of variables in your INTO statement as
you have in your SELECT list. True or False? Mark for Review
(1) Points
True (*)

False

Correct

7. Which statement correctly places the employee id and last name into the stated
variables? Mark for Review
(1) Points
DECLARE
CURSOR emp_cursor IS
SELECT employee_id, last_name FROM employees
WHERE department_id = 30;
v_empno employees.employee_id%TYPE;
v_lname employees.last_name%TYPE;
BEGIN
OPEN emp_cursor;
-- Point A
...
FETCH emp_cursor.employee_id, emp_cursor.last_name INTO v_empno, v_lname;

GET emp_cursor INTO v_empno, v_lname;

GET emp_cursor.employee_id, emp_cursor.last_name INTO v_empno, v_lname;

FETCH emp_cursor INTO v_empno, v_lname; (*)

Correct

8. An explicit cursor must always be declared, opened, and closed by the PL/SQL
programmer. True or False? Mark for Review
(1) Points
TRUE

FALSE (*)

Correct

9. Which of the following is a benefit of using a cursor FOR loop?


Mark for Review
(1) Points
You can OPEN the same cursor twice at the same time.

The exception handling is done automatically. .


Because there is less code, the loop executes faster.
%ROWCOUNT increments automatically each time a row is FETCHed.

The OPEN, CLOSE, FETCH and EXIT from the loop are done automatically. (*)

Correct

10.Which one of the following is a valid cursor FOR loop with a subquery?
Mark for Review
(1) Points
FOR emp_rec IN (SELECT last_name |and first_name FROM employees) LOOP ...

FOR emp_rec IN (SELECT UPPERCASE(last_name) FROM employees) LOOP ...

FOR emp_rec IN (SELECT last_name, salary*12 "ANNSAL" FROM employees) LOOP


... (*)
FOR emp_rec IN SELECT last_name, salary*12 "ANNSAL" FROM employees LOOP
...
None of these.

Correct

Section 5 Quiz
(Answer all questions in this section)
11.You want to declare a cursor which locks each row fetched by the cursor. Examine the
following code: Mark for Review
(1) Points
DECLARE

CURSOR emp_curs IS
SELECT * FROM employees
FOR -- Point A

Which of the following can NOT be coded at Point A?


UPDATE OF salary;

UPDATE;

UPDATE NOWAIT;

UPDATE OF employees; (*)

Correct

12.You have declared the following cursor: CURSOR country_curs IS


SELECT country_id, country_name Mark for Review
FROM wf_countries (1) Points
FOR UPDATE WAIT 10; Another user updates a row in WF_COUNTRIES but does not
COMMIT the update. What will happen when you OPEN country_curs; ?
A LOCKED_ROWS exception is raised immediately.

Your session waits indefinitely until the other user COMMITs.

Your session waits for 10 seconds, and then returns control to your block so that it
can continue to execute. (*)
Your block fails because you should have coded: FOR UPDATE WAIT (10);

The other user's transaction is automatically rolled back.

Correct
13.A cursor is declared as:
Mark for Review
CURSOR c IS SELECT * FROM departments FOR UPDATE; (1) Points

After opening the cursor and fetching some rows, you want to delete the most recently
fetched row. Which of the following will do this successfully?
DELETE FROM c WHERE CURRENT OF c;

DELETE FROM c WHERE CURRENT OF departments;

DELETE FROM departments WHERE CURRENT OF c; (*)

None of these.

DELETE FROM departments WHERE c%ROWCOUNT = 1;

Correct

14.When using multiple nested cursors, what kinds of loops can you use?
Mark for Review
(1) Points
Cursor FOR loops

Basic loops only

WHILE loops only

None of the three loops

All three loops (*)

Correct

15.How many explicit cursors can be declared and used in a single PL/SQL block?
Mark for Review
(1) Points
Only one

None of these.

As many as needed (*)

One or two

Up to eight cursors

Correct

Das könnte Ihnen auch gefallen