0 evaluări0% au considerat acest document util (0 voturi)
80 vizualizări5 pagini
1) When declaring a cursor to lock rows from the EMPLOYEES table, you should use "FOR UPDATE OF employees" to lock the fetched rows and prevent other users from updating them.
2) If another user updates a row in the WF_COUNTRIES table without committing, when you open a cursor declared with "FOR UPDATE WAIT 10", your session will wait for 10 seconds before returning control so it can continue executing.
3) When declaring a cursor to lock rows from a join of the EMPLOYEES and DEPARTMENTS tables, you should use "FOR UPDATE OF salary" to lock the salary column from EMPLOYEES but not lock rows from DEPARTMENTS.
1) When declaring a cursor to lock rows from the EMPLOYEES table, you should use "FOR UPDATE OF employees" to lock the fetched rows and prevent other users from updating them.
2) If another user updates a row in the WF_COUNTRIES table without committing, when you open a cursor declared with "FOR UPDATE WAIT 10", your session will wait for 10 seconds before returning control so it can continue executing.
3) When declaring a cursor to lock rows from a join of the EMPLOYEES and DEPARTMENTS tables, you should use "FOR UPDATE OF salary" to lock the salary column from EMPLOYEES but not lock rows from DEPARTMENTS.
1) When declaring a cursor to lock rows from the EMPLOYEES table, you should use "FOR UPDATE OF employees" to lock the fetched rows and prevent other users from updating them.
2) If another user updates a row in the WF_COUNTRIES table without committing, when you open a cursor declared with "FOR UPDATE WAIT 10", your session will wait for 10 seconds before returning control so it can continue executing.
3) When declaring a cursor to lock rows from a join of the EMPLOYEES and DEPARTMENTS tables, you should use "FOR UPDATE OF salary" to lock the salary column from EMPLOYEES but not lock rows from DEPARTMENTS.
S table. You want to lock the fe tched rows, to prevent other users from updatin g them. You declare the following cursor: CURSOR emp_curs IS SELECT employee_id, last_name, salary FROM employees -- Line A -- ; What should you code at Line A? What should you code at Line A? Mark for Review (1) Points FOR LOCK FOR UPDATE OF employees FOR UPDATE (*) FOR UPDATE (employees) Correct 2. You have declared the following cursor: CURSOR country_curs IS SELECT country_id, country_name FROM wf_countries FOR UPDATE WAIT 10; Another user upd ates a row in WF_COUNTRIES but does not COMMIT the update. What will happen when you OPEN country_curs; ? Mark for Review (1) Points A LOCKED_ROWS exception is raised immediately. The other user's transaction is automatically rolled back. Y our session waits indefinitely until the other user COMMITs. Your session waits for 10 seconds, and then returns control to your bloc k so that it can continue to execute. (*) Your block fails because you should have coded: FOR UPDATE WAIT (10); Correct 3. You declare a cursor as a join of two tables: CURSOR emp_dept_curs IS SELECT last_name, salary, department_name FROM employees e, departments d WHERE e.department_id = d.department_id -- Point A -- ; You want to lock fetched rows from EMPLOYEES, but NOT lock fetched rows from DEP ARTMENTS. Which of the follo wing is correct at Point A? Mark for Review (1) Points FOR UPDATE FOR UPDATE of salary (*) FOR UPDATE OF employees FOR UPDATE (last_name) Correct 4. When can we use the WHERE CURRENT OF clause? (1) Points Only with an UPDATE, not with a DELETE. Only with a DELETE, not with an UPDATE. When the curs or is declared as SELECT ... FOR UPDATE ...; (*) When the cursor is based on a s ingle table (not on a join). When the cursor has not been OPENed. Mark for Revie w Correct 5. What is the difference between the following two blocks of code? --Bl ock A DECLARE CURSOR emp_cursor IS SELECT employee_id, last_name FROM employees WHERE department_id = 80 FOR UPDATE OF salary; --Block B DECLARE CURSOR emp_cursor IS SELECT employee_id, last_name FROM employees WHERE department_id = 80 FOR UPDATE OF salary NOWAIT; Mark for Review (1) Points There is no difference; the progra ms behave exactly the same way. In Block A, the program waits indefinitely until the rows are available. In Block B, the program returns control immediately so that it can do other wor k. (*) In Block A, the program waits indefinitely until the rows are available. In Block B, control is returned to your program after 5 seconds so that it can do other work. Correct 6. You have declared a cursor as SELECT .... FOR UPDATE; You have OPENed th e cursor and locked the FETCHed rows. When are these row locks released? Mar k for Review (1) Points When an UPDATE ... WHERE CURRENT OF cursor_name; is exec uted. When you CLOSE the cursor. When your block finishes executing. When you ex plicitly COMMIT or ROLLBACK your transaction. (*) When another user tries to SEL ECT the rows. Correct 7. If the rows you attempt to reserve using FOR UPDATE have already been l ocked by another session and you use the NOWAIT option, what is the outcome? Mar k for Review (1) Points The block executes successfully with no errors. The serv er will wait until the locks have been released by the other use r. An Oracle se rver error occurs. (*) Your rows will override the other users' lock and your bl ock will execut e successfully. Correct