Section 5 Quiz PLSQL

Test: Section 5 Quiz Review your answers, feedback, and question scores below. An asterisk (*) indicates a correct answe

Views 1,901 Downloads 28 File size 478KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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? CURSOR emp_curs IS SELECT * FROM departments WHERE location_id = p_loc_id;

Mark for Review (1) Points

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?

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.

Mark for Review (1) Points

%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 FROM wf_countries 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

Mark for Review (1) Points

13.A cursor is declared as: CURSOR c IS SELECT * FROM departments FOR UPDATE;

Mark for Review (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?

Only one None of these. As many as needed (*) One or two Up to eight cursors Correct

Mark for Review (1) Points