1. 	In a package, public components are declared in the specification but private components are not. True or False? 	Mark for Review 
(1) Points
					
			
	True (*)
	
			
	False
	
					
				
Correct		Correct
	
					
		2. 	Package OLDPACK is in your schema. What will happen when the following statement is executed?

DROP PACKAGE oldpack;
	Mark for Review 
(1) Points
					
			
	The body will be dropped but the specification will be retained.
	
			
	The specification will be dropped but the body will be retained.
	
			
	Both the specification and the body will be dropped. (*)
	
			
	The statement will fail because you must drop the body before you can drop the specification.
	
					
				
Correct		Correct
	
					
		3. 	Your schema contains four packages, each having a specification and a body. You have also been granted privileges to access three packages (and their bodies) in other users' schemas. What will be displayed by the following query?

SELECT COUNT(*) FROM ALL_OBJECTS
    WHERE object_type LIKE 'PACK%'
    AND owner <> USER;
	Mark for Review 
(1) Points
					
			
	14
	
			
	7
	
			
	3
	
			
	6 (*)
	
			
	0
	
					
				
Incorrect		Incorrect. Refer to Section 9.
	
					
		4. 	A package contains both public and private subprograms. Which one of the following statements is true? 	Mark for Review 
(1) Points
					
			
	Each subprogram is loaded into memory when it is first invoked.
	
			
	The public subprograms are all loaded into memory at the same time, but the private subprograms are loaded into memory one at a time as they are invoked.
	
			
	The whole package is loaded into memory when the first call is made to any subprogram in the package. (*)
	
			
	If three users invoke three different subprograms in the package, there will be three copies of the code in memory.
	
					
				
Correct		Correct
	
					
		5. 	Examine the following package specification:

CREATE OR REPLACE PACKAGE taxpack IS
    CURSOR empcurs IS SELECT * FROM employees;
    PROCEDURE taxproc;
END mypack;

The package body of TAXPACK also includes a function called TAXFUNC. Which one of the following statements is NOT true?
	Mark for Review 
(1) Points
					
			
	The procedure can be invoked by:

BEGIN
    taxpack.taxproc;
END;

	
			
	The packaage will not compile because you cannot declare a cursor in the specification.

(*)
	
			
	TAXPROC is a public procedure and TAXFUNC is a private function
	
			
	TAXPROC can invoke TAXFUNC if TAXPROC is coded before TAXFUNC
	
			
	TAXPROC can open the cursor
	
					
				
Correct		Correct
	
					
		6. 	When a change is made to the detailed code of a public procedure in a package (but not to the procedure's name or parameters), both the specification and the body must be recompiled. True or False? 	Mark for Review 
(1) Points
					
			
	True
	
			
	False (*)
	
					
				
Correct		Correct
	
					
		7. 	We need to declare a package variable named MYVAR, which can be referenced by any subprogram in the package but can NOT be referenced from outside the package. In the following code, where should MYVAR be declared?

CREATE OR REPLACE PACKAGE varpack IS
    -- Point A
...
END varpack;
CREATE OR REPLACE PACKAGE BODY varpack IS
    -- Point B
PROCEDURE varproc IS
    -- Point C
    BEGIN
       ...
    END varproc;
PROCEDURE ...
...
    -- Point D
END varpack;
	Mark for Review 
(1) Points
					
			
	Point A
	
			
	Point B (*)
	
			
	Point C
	
			
	Point D
	
			
	Point B or Point C, they will both work
	
					
				
Correct		Correct
	
					
		8. 	Package MULTIPACK declares the following global variable:
    g_myvar NUMBER;

User DICK executes the following:
    multipack.g_myvar := 45;

User HAZEL now connects to the database. Both users immediately execute:

BEGIN
    DBMS_OUTPUT.PUT_LINE(multipack.g_myvar);
END;

What values will Dick and Hazel see?
	Mark for Review 
(1) Points
					
			
	Dick: 45, Hazel: 45
	
			
	Dick: 45, Hazel: 0
	
			
	Dick: 45, Hazel: null (*)
	
			
	Dick: 0, Hazel: 0
	
			
	Both queries will fail because the syntax of DBMS_OUTPUT.PUT_LINE is incorrect
	
					
				
Incorrect		Incorrect. Refer to Section 9.
	
					
		9. 	Package CURSPACK declares a global cursor in the package specification. The package contains three public procedures: OPENPROC opens the cursor; FETCHPROC fetches 5 rows from the cursor's active set; CLOSEPROC closes the cursor.

What will happen when a user session executes the following commands in the order shown?
    curspack.openproc; -- line 1
    curspack.fetchproc; -- line 2
    curspack.fetchproc; -- line 3
    curspack.openproc; -- line 4
    curspack.fetchproc; -- line 5
    curspack.closeproc; -- line 6
	Mark for Review 
(1) Points
					
			
	The first 15 rows will be fetched.
	
			
	The first 10 rows will be fetched, then the first 5 rows will be fetched again.
	
			
	The first 5 rows will be fetched three times.
	
			
	An error will occur at line 2.
	
			
	An error will occur at line 4. (*)
	
					
				
Correct		Correct
	
					
		10. 	Which two of these declarations cannot be in the same package specification?

   1. PROCEDURE myproc (p1 NUMBER, p2 VARCHAR2);
   2. PROCEDURE myproc (p1 VARCHAR2, p2 NUMBER);
   3. PROCEDURE myproc (p1 NUMBER, p2 CHAR);
   4. PROCEDURE myproc (p1 NUMBER);

	Mark for Review 
(1) Points
					
			
	1 and 2
	
			
	1 and 3 (*)
	
			
	2 and 3
	
			
	3 and 4
	
			
	1 and 4
	
					
				
Correct		Correct 
11. 	We never need to use a forward declaration when invoking a public subprogram. True or False? 	Mark for Review 
(1) Points
					
			
	True (*)
	
			
	False
	
					
				
Correct		Correct
	
					
		12. 	Which of the following statements about a package initialization block is true? 	Mark for Review 
(1) Points
					
			
	It cannot contain any SQL statements.
	
			
	It is an anonymous block at the end of a package body. (*)
	
			
	It is a procedure in a package that must be invoked before the rest of the package can be used.
	
			
	It is an anonymous block in the package specification.
	
			
	It is executed automatically every time any global variable in the package is referenced.
	
					
				
Correct		Correct
	
					
		13. 	A public function in a package is invoked from within a SQL statement. The function's code can include a COMMIT statement. True or False? 	Mark for Review 
(1) Points
					
			
	True
	
			
	False (*)
	
					
				
Correct		Correct
	
					
		14. 	You want to create a function which drops a table. You write the following code:

CREATE OR REPLACE FUNCTION droptab
    (p_tab_name IN VARCHAR2)
RETURN BOOLEAN IS
BEGIN
    DROP TABLE p_tab_name;
    RETURN TRUE;
EXCEPTION
    WHEN OTHERS THEN RETURN FALSE;
END;

Why will this procedure not compile successfully?
	Mark for Review 
(1) Points
					
			
	Because you can never drop a table from inside a function
	
			
	Because the PL/SQL compiler cannot check if the argument of p_tab_name is a valid table-name (*)
	
			
	Because you do not have the privilege needed to drop a table
	
			
	Because you cannot use RETURN in the exception section
	
					
				
Correct		Correct
	
					
		15. 	The following procedure adds a column of datatype DATE to the EMPLOYEES table. The name of the new column is passed to the procedure as a parameter.

CREATE OR REPLACE PROCEDURE addcol
    (p_col_name IN VARCHAR2) IS
    v_first_string VARCHAR2(100) := 'ALTER TABLE EMPLOYEES ADD (';
    v_second_string VARCHAR2(6) := ' DATE)';
BEGIN
    ... Line A
END;

Which of the following will work correctly when coded at line A? (Choose two.)
	Mark for Review 
(1) Points
					
			(Choose all correct answers)	
					
			
	v_first_string || p_col_name || v_second_string;

	
			
	EXECUTE IMMEDIATE v_first_string || p_col_name || v_second_string;

(*)
	
			
	EXECUTE IMMEDIATE 'v_first_string' || p_col_name || 'v_second_string';

	
			
	v_first_string := v_first_string || p_col_name;
EXECUTE IMMEDIATE v_first_string || v_second_string;

(*)
	
			
	EXECUTE v_first_string || p_col_name || v_second_string;

	
					
				
Incorrect		Incorrect. Refer to Section 9.
	
					
		16. 	MARY wants HENRY to be able to query her EMPLOYEES table. Mary executes the following code:

DECLARE
    v_grant_stmt VARCHAR2(50);
BEGIN
    v_grant_stmt := 'GRANT SELECT ON employees TO henry';
    DBMS_SQL.EXECUTE(v_grant_stmt);
END;

Mary has successfully granted the privilege to Henry. True or False?
	Mark for Review 
(1) Points
					
			
	True
	
			
	False (*)
	
					
				
Incorrect		Incorrect. Refer to Section 9.
	
					
		17. 	Which of the following SQL statements can be included in a PL/SQL block only by using Dynamic SQL? (Choose two.) 	Mark for Review 
(1) Points
					
			(Choose all correct answers)	
					
			
	DELETE
	
			
	SAVEPOINT
	
			
	ALTER (*)
	
			
	SELECT ..... FOR UPDATE NOWAIT
	
			
	GRANT (*)
	
					
				
Correct		Correct
	
					
		18. 	What is wrong with the following syntax for creating a package specification?

CREATE OR REPLACE PACKAGE mypack IS
    g_constant1 NUMBER(6) := 100;
    FUNCTION func1 (p_param1 IN VARCHAR2);
    FUNCTION func2;
END mypack;
	Mark for Review 
(1) Points
					
			
	You cannot declare constants in the specification.

	
			
	A package must contain at least one procedure.

	
			
	The RETURN datatype of the functions must be specified.

(*)
	
			
	The first line should be:
CREATE OR REPLACE PACKAGE SPECIFICATION mypack IS

	
			
	Nothing is wrong, this code contains no errors.

	
					
				
Correct		Correct
	
					
		19. 	Which part of a package must be created first, the specification or the body? 	Mark for Review 
(1) Points
					
			
	The body
	
			
	The specification (*)
	
			
	The specification and body must be created at the same time.
	
			
	It does not matter which is created first.
	
			
	The body can be created first, but only if the package has no specification.
	
					
				
Correct		Correct
	
					
		20. 	The following package specification has been created:

CREATE OR REPLACE PACKAGE mypack IS
    FUNCTION myfunc(p_funcparam DATE) RETURN BOOLEAN;
    PROCEDURE myproc(p_procparam IN NUMBER);
END mypack;

Which of the following will correctly invoke the package subprograms? (Choose two.)
	Mark for Review 
(1) Points
					
			(Choose all correct answers)	
					
			
	mypack.myfunc('22-JAN-07');

	
			
	mypack.myproc(35);

(*)
	
			
	IF NOT mypack.myfunc(SYSDATE) THEN
    DBMS_OUTPUT.PUT_LINE('Message');
END IF;

(*)
	
			
	myproc(40);

	
			
	v_num := mypack.myproc(22);

	
					
				
Correct		Correct
	
						21. 	Package MYPACK contains procedure MYPROC. You can see which parameters MYPROC uses by executing: DESCRIBE mypack.myproc. True or False? 	Mark for Review 
(1) Points
					
			
	True
	
			
	False (*)
	
					
				
Correct		Correct
	
					
		22. 	Why is it better to use DBMS_OUTPUT only in anonymous blocks, not inside stored subprograms such as procedures? 	Mark for Review 
(1) Points
					
			
	Because DBMS_OUTPUT cannot be used inside procedures
	
			
	Because anonymous blocks display messages while the block is executing, while procedures do not display anything until their execution has finished
	
			
	Because DBMS_OUTPUT should be used only for testing and debugging PL/SQL code (*)
	
			
	Because DBMS_OUTPUT can raise a NO_DATA_FOUND exception if used inside a packaged procedure
	
					
				
Incorrect		Incorrect. Refer to Section 9.
	
					
		23. 	DBMS_OUTPUT.PUT_LINE can be invoked from inside a private packaged function. True or False? 	Mark for Review 
(1) Points
					
			
	True (*)
	
			
	False
	
					
				
Correct		Correct
	
					
		24. 	An Oracle directory called FILESDIR has been created by executing:
CREATE OR REPLACE DIRECTORY filesdir AS 'C:\NEWFILES';
Which of the following will create a new text file called C:\NEWFILES\EMP_REPORT.TXT ? 	Mark for Review 
(1) Points
					
			
	UTL_FILE.CREATE('FILESDIR','EMP_REPORT.TXT');
	
			
	UTL_FILE.FOPEN('C:\NEWFILES\EMP_REPORT.TXT','w');
	
			
	UTL_FILE.FOPEN('FILESDIR','EMP_REPORT.TXT','w'); (*)
	
			
	UTL_FILE.OPEN('FILESDIR','EMP_REPORT.TXT','c');
	
					
				
Correct		Correct
	
					
		25. 	The DBMS_OUTPUT.PUT procedure places text in a buffer but does not display the contents of the buffer. True or False? 	Mark for Review 
(1) Points
					
			
	True (*)
	
			
	False
	
					
				
Correct		Correct
	
					
					
	Section 10
					
		26. 	The following code will successfully create emp_trigg: True or False?

CREATE OR REPLACE TRIGGER emp_trigg
BEFORE DELETE OF salary ON employees
BEGIN
    RAISE_APPLICATION_ERROR(-20202,'Deleting salary is not allowed');
END;
	Mark for Review 
(1) Points
					
			
	True
	
			
	False (*)
	
					
				
Incorrect		Incorrect. Refer to Section 10.
	
					
		27. 	What is wrong with the following code?

CREATE OR REPLACE TRIGGER emp_dept_trigg
BEFORE UPDATE OR DELETE ON employees, departments
BEGIN
    ...
	Mark for Review 
(1) Points
					
			
	One trigger can be associated with only one table

(*)
	
			
	The second line should be:
BEFORE (UPDATE,DELETE) ON employees, departments

	
			
	DML triggers must be row triggers, so FOR EACH ROW is missing

	
			
	The second line should be:
BEFORE UPDATE OR DELETE ON employees OR departments

	
					
				
Correct		Correct
	
					
		28. 	What is wrong with the following code?

CREATE OR REPLACE TRIGGER loc_trigg
BEFORE DELETE ON locations
BEGIN
    RAISE_APPLICATION_ERROR(-20201,'Invalid delete');
    ROLLBACK;
END;
	Mark for Review 
(1) Points
					
			
	The last line should be:
END loc_trigg;

	
			
	You cannot use RAISE_APPLICATION_ERROR inside a trigger.

	
			
	The second line should be:
BEFORE DELETE OF locations

	
			
	You cannot use ROLLBACK inside a trigger.

(*)
	
			
	Nothing is wrong, this trigger will compile and execute successfully.

	
					
				
Correct		Correct
	
					
		29. 	What is wrong with the following code?

CREATE TRIGGER dept_trigg
BEFORE UPDATE OF department_name ON departments
BEGIN
    DBMS_OUTPUT.PUT_LINE(:NEW.department_name);
END;
	Mark for Review 
(1) Points
					
			
	You cannot use :NEW in a BEFORE trigger, only in an AFTER trigger.
	
			
	You cannot use :NEW or :OLD in a statement trigger. (*)
	
			
	You cannot use DBMS_OUTPUT.PUT_LINE inside a trigger.
	
			
	The second line should be:
BEFORE UPDATE ON departments.department_name

	
					
				
Correct		Correct
	
					
		30. 	Examine the following code. To create a row trigger, what code should be included at Line A?

CREATE TRIGGER dept_trigg
AFTER UPDATE OR DELETE ON departments
    -- Line A
BEGIN ...
	Mark for Review 
(1) Points
					
			
	AFTER EACH ROW
	
			
	FOR EVERY ROW
	
			
	FOR EACH ROW (*)
	
			
	ON EACH ROW
	
			
	ON EVERY ROW
	
					
				
Correct		Correct 
31. 	There are 3 employees in department 90 and 5 employees in department 50. The following trigger has been created:

CREATE TRIGGER upd_emp_trigg
AFTER UPDATE ON employees
FOR EACH ROW
BEGIN
...

A user now executes:

UPDATE employees SET department_id = 50
    WHERE department_id = 90;

How many times will the trigger fire?
	Mark for Review 
(1) Points
					
			
	Once
	
			
	Three times (*)
	
			
	Four times
	
			
	Five times
	
			
	Eight times
	
					
				
Correct		Correct
	
					
		32. 	Examine the following trigger. It should raise an application error if a user tries to update an employee's last name. It should allow updates to all other columns of the EMPLOYEES table. What should be coded at line A?

CREATE TRIGGER stop_ln_trigg
BEFORE UPDATE ON employees
BEGIN
       -- Line A
    RAISE_APPLICATION_ERROR(-20201,'Updating last name not allowed');
    END IF;
END;
	Mark for Review 
(1) Points
					
			
	IF UPDATING LAST_NAME THEN
	
			
	IF UPDATING('LAST_NAME') THEN (*)
	
			
	IF UPDATE('LAST_NAME') THEN
	
			
	IF UPDATING THEN
	
					
				
Correct		Correct
	
					
		33. 	With which kind of trigger can the :OLD and :NEW qualifiers be used? 	Mark for Review 
(1) Points
					
			
	DDL triggers
	
			
	Database Event triggers
	
			
	Statement triggers
	
			
	Row triggers (*)
	
			
	AFTER triggers
	
					
				
Correct		Correct
	
					
		34. 	What is the purpose of using the CALL statement in a trigger? 	Mark for Review 
(1) Points
					
			
	It allows an INSTEAD OF trigger to be a statement trigger.
	
			
	It allows the trigger body code to be placed in a separate procedure. (*)
	
			
	It prevents cascading triggers.
	
			
	It allows the trigger body code to be placed in a separate procedure or function.
	
			
	It allows both DML events and DDL events to be handled using a single trigger.
	
					
				
Correct		Correct
	
					
		35. 	Examine this code:

CREATE TRIGGER new_trigg
AFTER CREATE ON reserved_word
BEGIN ...

Which of the following can be used in place of reserved_word? (Choose two.)
	Mark for Review 
(1) Points
					
			(Choose all correct answers)	
					
			
	TABLE
	
			
	SCHEMA (*)
	
			
	USER
	
			
	DATABASE (*)
	
			
	TABLE employees
	
					
				
Correct		Correct
	
					
		36. 	The database administrator wants to write a log record every time an Oracle Server error occurs in any user's session. The DBA creates the following trigger:

CREATE TRIGGER log_errs_trigg
    -- Line A
BEGIN
    INSERT INTO errlog_table VALUES (...);
END;
What should the DBA code at Line A ?
	Mark for Review 
(1) Points
					
			
	AFTER ERROR ON DATABASE
	
			
	AFTER SERVER ERROR ON DATABASE
	
			
	AFTER SERVERERROR ON SCHEMA
	
			
	AFTER SERVERERROR ON DATABASE (*)
	
			
	AFTER ORACLE ERROR ON SCHEMA
	
					
				
Correct		Correct
	
					
		37. 	Which of the following statements could cause a DDL trigger to fire? 	Mark for Review 
(1) Points
					
			
	DROP TABLE employees;
	
			
	ALTER TABLE departments ADD (budget NUMBER(8,2));
	
			
	CREATE TABLE newemp AS SELECT * FROM employees;
	
			
	TRUNCATE TABLE locations;
	
			
	All of the above (*)
	
					
				
Correct		Correct
	
					
		38. 	Examine the following code:

CREATE TRIGGER emp_trigg
AFTER UPDATE OF salary ON employees
FOR EACH ROW
DECLARE
    v_count NUMBER;
BEGIN
    -- Line A
END;

Which of the following statements is NOT allowed at Line A?
	Mark for Review 
(1) Points
					
			
	SELECT count(*) INTO v_count FROM departments;
	
			
	UPDATE employees SET job_id = 'IT_PROG' WHERE employee_id = :OLD.employee_id;
	
			
	SELECT count(*) INTO v_count FROM employees; (*)
	
			
	DBMS_OUTPUT.PUT_LINE('A salary was updated');
	
			
	None. All of the above are allowed.
	
					
				
Correct		Correct
	
					
		39. 	What is wrong with the following code?

CREATE TRIGGER call_trigg
AFTER LOGOFF ON SCHEMA
BEGIN
    CALL drop_proc;
END;
	Mark for Review 
(1) Points
					
			
	You cannot code an AFTER LOGOFF trigger
	
			
	When using CALL, you must not code BEGIN
	
			
	When using CALL, you must not code END;
	
			
	The CALL statement must not end with a semicolon (;)
	
			
	All of the above (*)
	
					
				
Correct		Correct
	
					
		40. 	Examine this code:

CREATE TRIGGER de_trigg
    -- Line A
BEGIN ...

Which of the following are NOT valid at Line A ? (Choose two.)
	Mark for Review 
(1) Points
					
			(Choose all correct answers)	
					
			
	AFTER LOGOFF ON SCHEMA (*)
	
			
	AFTER LOGON ON SCHEMA
	
			
	BEFORE LOGOFF ON SCHEMA
	
			
	BEFORE DISCONNECT ON SCHEMA (*)
	
			
	AFTER SERVERERROR ON SCHEMA
	
					
				
Correct		Correct 
41. 	Which of the following are NOT stored inside the database? (Choose two.) 	Mark for Review 
(1) Points
					
			(Choose all correct answers)	
					
			
	A PL/SQL package specification
	
			
	A database trigger
	
			
	An anonymous block (*)
	
			
	An application trigger (*)
	
			
	A sequence
	
					
				
Correct		Correct
	
					
		42. 	A trigger can be created in the database or within an application. True or False? 	Mark for Review 
(1) Points
					
			
	True (*)
	
			
	False
	
					
				
Correct		Correct
	
					
		43. 	A trigger can be a public subprogram within a PL/SQL package. True or False? 	Mark for Review 
(1) Points
					
			
	True
	
			
	False (*)
	
					
				
Correct		Correct
	
					
		44. 	The following objects have been created in a user's schema:
- a function FUNC1
- A package PACK1 which contains a public procedure PACKPROC and a private function PACKFUNC
- a trigger TRIGG1.
The procedure and functions each accept a single IN parameter of type NUMBER, and the functions return BOOLEANs. Which of the following calls to these objects (from an anonymous block) are correct? (Choose two.) 	Mark for Review 
(1) Points
					
			(Choose all correct answers)	
					
			
	pack1.packproc(25); (*)
	
			
	SELECT func1(100) FROM dual;
	
			
	trigg1;
	
			
	IF pack1.packfunc(40) THEN ...
	
			
	IF func1(75) THEN ... (*)
	
					
				
Correct		Correct
	
					
		45. 	What type of database object would you create to write an auditing record automatically every time a user connects to the database? 	Mark for Review 
(1) Points
					
			
	A procedure
	
			
	A complex view
	
			
	A trigger (*)
	
			
	A function
	
			
	A package
	
					
				
Correct		Correct
	
					
		46. 	Which of the following are good guidelines to follow when creating a database trigger? (Choose two.) 	Mark for Review 
(1) Points
					
			(Choose all correct answers)	
					
			
	Where possible, use a trigger to enforce a foreign key constraint.
	
			
	Use triggers to override privilege checking and view other users' private tables.
	
			
	Do not use a trigger to replace or duplicate something which the Oracle Server does automatically. (*)
	
			
	Use triggers to prevent unauthorized users from SELECTing confidential data.
	
			
	Do not create a trigger that automatically fires another trigger. (*)
	
					
				
Correct		Correct
	
					
		47. 	Which of the following best describes a database trigger? 	Mark for Review 
(1) Points
					
			
	A subprogram that checks whether a user has typed the correct password to log on to the database.
	
			
	A PL/SQL subprogram that executes automatically whenever an associated database event occurs. (*)
	
			
	A PL/SQL subprogram that always returns exactly one value.
	
			
	A subprogram that is invoked explicitly by the calling application.
	
			
	A PL/SQL subprogram that inserts rows into a logging table.
	
					
				
Correct		Correct
	
					
		48. 	Which dictionary view shows the detailed code of a trigger body? 	Mark for Review 
(1) Points
					
			
	USER_SOURCE
	
			
	USER_TRIGGERS (*)
	
			
	USER_OBJECTS
	
			
	USER_DML_TRIGGERS
	
			
	USER_SUBPROGRAMS
	
					
				
Correct		Correct
	
					
		49. 	MARY and JOE's schemas each contain an EMPLOYEES table. JOE creates the following trigger:

CREATE TRIGGER upd_trigg
AFTER DELETE ON joe.employees
FOR EACH ROW
BEGIN
    DELETE FROM mary.employees
       WHERE employee_id = :OLD.employee_id;
END;

A third user TOM needs to delete rows from JOE's EMPLOYEES table. What object privileges will TOM and JOE need?
	Mark for Review 
(1) Points
					
			
	TOM does not need any object privileges, but JOE needs DELETE on both TOM.EMPLOYEES and MARY.EMPLOYEES
	
			
	TOM needs DELETE on JOE.EMPLOYEES and JOE needs DELETE on MARY.EMPLOYEES (*)
	
			
	JOE does not need any object privileges, but TOM needs DELETE on MARY.EMPLOYEES
	
			
	TOM needs DELETE on MARY.EMPLOYEES and JOE needs EXECUTE on TOM.UPD_TRIGG
	
					
				
Correct		Correct
	
					
		50. 	User AYSEGUL successfully creates the following trigger:

CREATE TRIGGER loc_trigg
BEFORE UPDATE ON aysegul.locations
BEGIN ....

AYSEGUL now tries to drop the LOCATIONS table. What happens?
	Mark for Review 
(1) Points
					
			
	An error message is displayed because you cannot drop a table that is associated with a trigger.
	
			
	The table is dropped and the trigger is disabled.
	
			
	The trigger is dropped but the table is not dropped.
	
			
	Both the table and the trigger are dropped. (*)
	
			
	None of the above.
	
					
				
Correct		Correct 