Beruflich Dokumente
Kultur Dokumente
In the following
example, where do
you place the
phrase BULK
COLLECT?
DECLARE
TYPE NameList IS
TABLE OF
emp.ename%TYPE;
names NameList;
CURSOR c1 IS
SELECT ename --
Position A
FROM emp
WHERE job =
'CLERK';
BEGIN
OPEN c1;
FETCH c1 --
Position B
INTO -- Position C
names;
...
CLOSE c1;
END;
Mark for Review
(1) Points
Position A
Position B (*)
Position C
Correct
2. In the following example, where do you place the phrase
DETERMINISTIC?
CREATE OR REPLACE FUNCTION total_sal
(p_dept_id IN -- Position A employees.department_id%TYPE)
RETURN NUMBER -- Position B IS v_total_sal NUMBER;
BEGIN
SELECT SUM(salary) INTO v_total_sal
FROM employees WHERE department_id = p_dept_in;
RETURN v_total_sal -- Position C;
END total_sal;
Mark for Review
(1) Points
Position A
Position B (*)
Position C
Correct
3. In the following example, where do you place the phrase BULK
COLLECT?
...
BEGIN
SELECT -- Position A
Mark for Review
(1) Points
salary -- Position B
INTO v_saltab -- Position C
FROM employees WHERE department_id = 20 ORDER BY salary
-- Position D
;
...
Position A
Position B (*)
Position C
Position D
Correct
4. What are benefits of using the NOCOPY hint? (Choose two)
Mark for Review
(1) Points
(Choose all correct answers)
Safer because it uses passing by value.
Efficient since it uses less memory. (*)
Uses a larger block of server memory for faster access.
Faster because a single copy of the data is used. (*)
Correct
5. Name two reasons for using Dynamic SQL.
Mark for Review
(1) Points
(Choose all correct answers)
Avoid errrors at compile time of DML statements.
Create a SQL statement with varying column data, or different
conditions. (*)
Enables data-definition statements to be written and executed
from PL/SQL. (*)
Enables system control statements to be written and executed
from PL/SQL.
Correct
6. Only one call to DBMS_SQL is needed in order to drop a table. True or
False?
Mark for Review
(1) Points
True
False (*)
Correct
7. For which of the following is it necessary to use Dynamic SQL?
(Choose three.)
Mark for Review
(1) Points
(Choose all correct answers)
ALTER (*)
GRANT (*)
SAVEPOINT
UPDATE
DROP (*)
Correct
8. A programmer wants to code a procedure which will create a table
with a single column. The datatype of the column will be chosen by
the user who invokes the procedure. The programmer writes the
following code:
CREATE OR REPLACE PROCEDURE create_tab
(p_col_datatype IN VARCHAR2) IS
BEGIN
CREATE TABLE newtab (only_col p_col_datatype);
END;
Why will this procedure not compile successfully?
Mark for Review
(1) Points
Because you cannot create a table inside a procedure
Because the invoking user may not have CREATE TABLE privilege
Because when the procedure is compiled, Oracle cannot check if
the parameter value passed into the procedure is a valid column
datatype (*)
Because table NEWTAB may already exist
None of the above; the procedure will compile successfully
Correct
Section 10
(Answer all questions in this section)
9. Which of the following best describes a package initialization block?
Mark for Review
(1) Points
It is a named procedure in a package which must be invoked by
a user before any other part of the package can be invoked.
It is an anonymous block in the package specification.
It is an anonymous block at the end of a package body which
executes automatically the first time each user session invokes a
subprogram in the package. (*)
It is a private function within the package body.
Because it is an anonymous block, it cannot be invoked and
therefore will never execute. It is treated as a set of comments.
Correct
10. A package initialization block is executed automatically every time a
user invokes any procedure or function in the package. True or False?
Mark for Review
(1) Points
True
False (*)
Correct
Page 1 of 5
Next Summary
11. When
using a
package
function in
DML
statements,
which rules
must you
follow?
(Choose
three)
Mark for Review
(1) Points
(Choose all correct answers)
Must not end the current transaction (*)
Can read or modify the table being changed by that DML statement
Changes to a package variable could have an impact on another stored
function (*)
Cannot execute a DML statement or modify the database (*)
Correct
12. INDEX BY is missing from this package declaration. What is the most efficient
declaration?
CREATE OR REPLACE PACKAGE emp_pkg IS
TYPE emp_tab IS TABLE OF employees%ROWTYPE;
PROCEDURE get_employees(p_emp_table OUT emp_tab);
END emp_pkg;
Mark for Review
(1) Points
INDEX BY INTEGER
INDEX BY BINARY
INDEX BY BINARY_INTEGER (*)
INDEX ALL
Correct
13. The package name must be included when calling a package function from a
SELECT statement executed outside the package. True or False?
Mark for Review
(1) Points
True (*)
False
Correct
14. Which of the following can be included in a package?
Mark for Review
(1) Points
procedures
variables
PL/SQL types
Exceptions
All of the above (*)
Correct
15. A number variable declared in a package is initialized to 0 unless assigned
another value. True or False?
Mark for Review
(1) Points
True
False (*)
Correct
16. Package Specification DEPT_PACK was created by the following code:
CREATE OR REPLACE PACKAGE dept_pack IS
PROCEDURE ins_dept(p_deptno IN NUMBER);
FUNCTION get_dept(p_deptno IN NUMBER) RETURN VARCHAR2;
END dept_pack;
Which of the following are correct syntax for invoking the package
subprograms? (Choose two.)
Mark for Review
(1) Points
(Choose all correct answers)
BEGIN
dept_pack.ins_dept(20);
END;
(*)
BEGIN
dept_pack.get_dept(20);
END;
DECLARE
v_deptname VARCHAR2(20);
BEGIN
v_deptname := get_dept(50);
END;
CREATE PROCEDURE dept_proc IS
v_deptname VARCHAR2(20);
BEGIN
v_deptname := dept_pack.get_dept(40);
END;
(*)
BEGIN
dept_pack(30);
END;
Correct
17. Which of the following are good reasons to group a set of procedures and
functions into a package?
Mark for Review
(1) Points
Application developers do not need to know the details of the package
body code.
Related subprograms and variables can be grouped together for easier
management and maintenance.
If the detailed code is changed, aplications which invoke the package do
not need to be recompiled.
All of the above. (*)
Correct
18. A local variable defined inside a package procedure is visible to the calling
environment. True or False?
Mark for Review
(1) Points
True
False (*)
Correct
19. A local variable declared within a procedure in a package can be referenced by
any other component of that package. True or False?
Mark for Review
(1) Points
True
False (*)
Correct
20. Examine the following package specification:
CREATE OR REPLACE PACKAGE mypack IS
percent_tax NUMBER := 20;
PROCEDURE proc1;
END mypack;
The package body of mypack also includes a function called func1. Which of
the following statements are true? (Choose three.)
Mark for Review
(1) Points
(Choose all correct answers)
proc1 is a public procedure and func1 is a private function.
(*)
The package will not compile because you cannot declare variables in the
specification, only procedures and functions. .
The variable can be modified by:
BEGIN
mypack.percent_tax := 10;
END;
(*)
The function can be invoked from outside the package.
The procedure can be invoked by:
BEGIN
mypack.proc1;
END;
(*)
Correct
Previous Page 2 of 5 Next Summary
Section 10
(Answer all questions in this section)
21. A public component declared in the package specification can be referenced by a
private component defined in the package body. True or False?
Mark for Review
(1) Points
True (*)
False
Correct
22. Your schema contains a package called EMP_PKG. You want to remove the package
body but not the specification. The correct syntax to do this is: DROP BODY emp_pkg;
True or False?
Mark for Review
(1) Points
True
False (*)
Correct
Section 13
(Answer all questions in this section)
23. What are the timing events for a compound trigger?
Mark for Review
(1) Points
Before the triggering statement; After the triggering statement; Instead of the
triggering statement.
Before the triggering statement; Before each row; After each row; After the
triggering statement. (*)
Before the triggering statement; After the triggering statement; After each row.
Before the triggering statement; Before each row; After the triggering statement.
Correct
24. You decide to create the following trigger:
CREATE OR REPLACE TRIGGER empl_trigg
BEFORE UPDATE ON employees
BEGIN
Mark for Review
(1) Points
-- Line A
RAISE_APPLICATION_ERROR('Cannot update salary');
ELSE
INSERT INTO log_table values (USER, SYSDATE);
END IF;
END;
You want the trigger to prevent updates to the SALARY column, but allow updates to
all other columns. What should you code at Line A?
IF UPDATING SALARY THEN
IF UPDATING('SALARY') THEN (*)
IF UPDATE('SALARY') THEN
IF UPDATING(SALARY) THEN
IF UPDATE(SALARY) THEN
Correct
25. A row trigger has been created which is fired by UPDATE ON employees. A user now
executes a single SQL statement which updates four rows of the EMPLOYEES table.
How many times will the row trigger fire?
Mark for Review
(1) Points
Once
Twice
Four times (*)
Five times
Eight times
Correct
26. The OLD and NEW qualifiers can be used with statement triggers as well as row
triggers. True or False?
Mark for Review
(1) Points
True
False (*)
Correct
27. Which of the following best describes conditional predicates in a trigger?
Mark for Review
(1) Points
They are special variables which must be DECLAREd within the trigger.
They allow the trigger code to see what data values are being inserted into a
row.
They are automatically declared boolean variables which allow the trigger body
to detect which DML operation is being executed. (*)
They are special cursor attributes, like %ROWCOUNT and %NOTFOUND
Correct
28. You have created several DML triggers which reference your DEPARTMENTS table.
Now you want to disable all of them using a single SQL statement. Which command
Mark for Review
should you use? (1) Points
ALTER TRIGGER DISABLE ALL ON departments;
ALTER TABLE departments DISABLE ALL TRIGGERS; (*)
ALTER TABLE departments DISABLE TRIGGERS;
DROP ALL TRIGGERS ON departments;
Correct
29. Which dictionary view would you query to see the detailed body code of triggers in
your schema?
Mark for Review
(1) Points
USER_SOURCE
USER_TRIGGER
USER_TRIGGERS (*)
USER_OBJECTS
None of the above, you cannot view the code of the trigger body after the trigger
has been created.
Correct
30. A user creates the following trigger:
CREATE OR REPLACE TRIGGER emp_trigg
AFTER DELETE ON employees
BEGIN
...
END;
The user now tries to drop the EMPLOYEES table. What happens?
Mark for Review
(1) Points
The table is dropped but the trigger is not dropped.
An error message is displayed because you cannot drop a table that is referenced
by a trigger.
The table is dropped and the trigger is disabled.
Both the table and the trigger are dropped. (*)
Correct
Previous
Page 3 of 5
Next Summary
Section 13
(Answer all questions in this section)
31. What is wrong with the following code?
CREATE OR REPLACE TRIGGER mytrigg
AFTER DELETE ON departments
BEGIN
INSERT INTO audit_table (who, when)
VALUES (USER, SYSDATE);
COMMIT;
Mark for Review
(1) Points
END;
A DML trigger cannot itself contain a DML statement such as INSERT
INTO audit_table
You cannot use COMMIT inside a trigger. (*)
The last line of code should be END mytrigg;
The second line should be: AFTER DELETE OF DEPARTMENTS
Nothing is wrong, the trigger will execute successfully
Correct
32. We want to create a log record automatically every time any DML operation
is executed on either or both of the EMPLOYEES and DEPARTMENTS tables.
What is the smallest number of triggers that must be create to do this?
Mark for Review
(1) Points
One
Two (*)
Three
Six
Eight
Correct
33. Which of the following are possible keywords for the timing component of a
trigger? (Choose three.)
Mark for Review
(1) Points
(Choose all correct answers)
BEFORE (*)
INSTEAD
WHENEVER
INSTEAD OF (*)
AFTER (*)
Correct
34. Which of the following is the correct syntax for creating a DML trigger
associated with the EMPLOYEES table? The trigger must fire whenever an
employee's JOB_ID is updated, but not if a different column is updated.
Mark for Review
(1) Points
CREATE TRIGGER job_upd_trigg
AFTER UPDATE ON employees(job_id)
BEGIN ...
CREATE TRIGGER job_upd_trigg
WHENEVER UPDATE OF job_id IN employees
BEGIN ...
CREATE TRIGGER job_upd_trigg
AFTER UPDATE ON employees.job_id
BEGIN ...
CREATE TRIGGER job_upd_trigg
AFTER UPDATE OF job_id ON employees
BEGIN ...
(*)
Correct
35. You have been granted CREATE TRIGGER privilege. You can now create an
AFTER LOGOFF ON SCHEMA trigger. True or False?
Mark for Review
(1) Points
True
False (*)
Correct
36. You can create a trigger which prevents DDL statements on an individual
table, while still allowing DDL on other tables in the same schema. True or
False?
Mark for Review
(1) Points
True
False (*)
Correct
37. What is wrong with the following code?
CREATE OR REPLACE TRIGGER emp_dml_trigg
BEFORE UPDATE OF salary ON employees
FOR EACH ROW
DECLARE
v_max_sal employees.salary%TYPE;
BEGIN
SELECT max(sal) INTO v_max_sal FROM employees;
END;
Mark for Review
(1) Points
You cannot use a DECLARE statement in a trigger.
The trigger body is reading the same table (employees) that the
triggering event is updating. (*)
You must use RAISE_APPLICATION_ERROR in a BEFORE trigger.
You can never use SELECT inside a DML trigger.
Nothing is wrong, the trigger will execute correctly.
Correct
38. The database administrator creates a trigger that automatically disconnects
user HACKER whenever HACKER connects to the database. What type of
trigger is this?
Mark for Review
(1) Points
A DDL trigger
A Database Event trigger (*)
A DML trigger
A statement trigger
An INSTEAD OF trigger
Correct
39. Which of the following are NOT allowed within a database trigger? (Choose
two)
Mark for Review
(1) Points
(Choose all correct answers)
COMMIT (*)
A call to a packaged procedure
INSERT
A Boolean variable
SAVEPOINT (*)
Correct
40. Which of the following could NOT be done by a database trigger?
Mark for Review
(1) Points
Enforcing a complex business rule
Enforcing a complex database security check
Recalculating the total salary bill for a department whenever an
employee's salary is changed
Ensuring that a student never arrives late for a class (*)
Keeping a log of how many rows have been inserted into a table
Correct
Previous
Page 4 of 5
Next Summary
Section 13
(Answer all questions in this section)
41. While editing a document in Microsoft Word, you go to the FILE menu and SAVE your
work. To do this, Microsoft Word has executed an application trigger. True or False?
Mark for Review
(1) Points
True (*)
False
Correct
42. Which of the following best describes a database trigger?
Mark for Review
(1) Points
It allows users to log on to the database
It executes automatically whenever a particular event occurs within the database
(*)
It prevents unique constraints from being violated
It executes automatically whenever a user clicks on a button with their mouse
It allows foreign key constraints to be violated
Correct
43. Which of the following are good guidelines to follow when creating triggers? (Choose
two)
Mark for Review
(1) Points
(Choose all correct answers)
Be aware of recursive and cascading effects (*)
Where possible, use triggers to enforce NOT NULL constraints
Avoid lengthy trigger logic by creating a procedure and invoking it from within
the trigger (*)
Use triggers to replace functionality which is already built into the database
Always create more triggers than you need, because it is better to be safe
Correct
44. A database trigger is a PL/SQL stored subprogram which is explicitly invoked just like a
procedure or a function. True or False?
Mark for Review
(1) Points
True
False (*)
Correct
Section 11
(Answer all questions in this section)
45. Users A and B call the same procedure in a package to initialize a global variable
my_pkg.g_var. What will be the value of my_pkg.g_var for User A at Point A?
User A: my_pkg.g_var is 10
User B: my_pkg.g_var is 10
User A: my_pkg.g_var is 50
User B: my_pkg.g_var is 25
Point A
Mark for Review
(1) Points
10
50 (*)
25
Correct
46. A package's state is initialized when the package is first loaded. True or False?
Mark for Review
(1) Points
True (*)
False
Correct
47. Which DBMS_OUTPUT package subprogram places text into the buffer at Line 1?
(Choose one)
IF v_bool1 AND NOT v_bool2 AND v_number < 25 THEN
--Line 1
Mark for Review
(1) Points
ELSE
...
END IF;
DBMS_OUTPUT.NEW_LINE;
DBMS_OUTPUT.PUT('IF branch was executed'); (*)
DBMS_OUTPUT.PUT_LINE('IF branch was executed');
DBMS_OUTPUT.GET_LINE('IF branch was executed');
DBMS_OUTPUT.NEW_LINE('IF branch was executed');
Correct
48. Using the FOPEN function, you can do which actions with the UTL_FILE package?
(Choose 2)
Mark for Review
(1) Points
(Choose all correct answers)
It is used to append to a file until processing is complete. (*)
It is used to read and write text files stored outside the database. (*)
It is used to find out how much free space is left on an operating system disk.
It is used to manipulate large object data type items in columns.
Incorrect. Refer to Section 11 Lesson 2.
49. The UTL_FILE package can be used to read and write binary files such as JPEGs as
well as text files. True or False?
Mark for Review
(1) Points
True
False (*)
Correct
50. The UTL_FILE package contains several exceptions exclusively used in this package.
Which are they? (Choose 3)
Mark for Review
(1) Points
(Choose all correct answers)
INVALID_PATH (*)
NO_DATA_FOUND
WRITE_ERROR (*)
INVALID_OPERATION (*)
ZERO_DIVIDE
Correct
Previous Page 5 of 5 Summary