Professional Documents
Culture Documents
Mark for
Review
(1) Points
True (*)
False
[Correct] Correct
2. 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
(1) Points
10
50 (*)
25
[Correct] Correct
3. A cursor's state is defined only by whether it is open or closed and, if open, how
many rows it holds. True or False? Mark for Review
(1) Points
True
False (*)
[Correct] Correct
DECLARE
v_more_rows_exist BOOLEAN := TRUE;
BEGIN
-- Line 1
LOOP
v_more_rows_exist := curs_pkg.fetch_n_rows(3);
DBMS_OUTPUT.PUT_LINE('-------');
END LOOP;
curs_pkg.close_curs;
END;
(1) Points
curs_pkg.emp_curs%ISOPEN;
curs_pkg.close_curs;
curs_pkg.open_curs; (*)
(1) Points
Display results to the developer during testing for debugging purposes (*)
(1) Points
True (*)
False
3. 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 ELSE ... END IF;
DBMS_OUTPUT.NEW_LINE; Mark for Review
(1) Points
4. 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] Correct
5. Using the FOPEN function, you can do which actions with the UTL_FILE package?
(Choose 2) Mark for Review
(1) Points
It is used to find out how much free space is left on an operating system disk.
(1) Points
INVALID_PATH (*)
NO_DATA_FOUND
WRITE_ERROR (*)
INVALID_OPERATION (*)
ZERO_DIVIDE
(1) Points
TOO_MANY_ROWS
VALUE_ERROR (*)
ZERO_DIVIDE
NO_DATA_FOUND (*)
[Incorrect] Incorrect. Refer to Section 11 Lesson 2.
1. What happens when a SQL statement is parsed? (Choose three.) Mark for Review
(1) Points
Oracle queries the Data Dictionary to make sure that the tables referenced in the SQL statement
exist. (*)
(1) Points
True (*)
False
3. 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:
(p_col_datatype IN VARCHAR2) IS
BEGIN
END;
(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 (*)
4. For which of the following is it necessary to use Dynamic SQL? (Choose three.)
Mark for Review
(1) Points
GRANT (*)
SAVEPOINT
UPDATE
DROP (*)
5. Examine the following procedure, which drops a table whose name is passed as
an IN parameter:
(p_table_name IN VARCHAR2) IS
v_sql_statement VARCHAR2(100);
BEGIN
...
END;
Which of the following will work correctly when coded in the procedure's executable section? (Choose
two.)
(1) Points
(*)
(*)
BEGIN
END LOOP;
END;
(1) Points
The procedure will not compile successfully because you cannot ALTER functions using Dynamic
SQL.
The procedure will not compile successfully because the syntax of the ALTER FUNCTION
statement is incorrect.
(1) Points
True
False (*)
[Correct] Correct
8. 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] Correct
9. Name two reasons for using Dynamic SQL. Mark for Review
(1) Points
Creates a SQL statement with varying column data, or different conditions (*)
1. What are benefits of using the NOCOPY hint? (Choose two) Mark for Review
(1) Points
[Correct] Correct
2. A function-based index may be made using your own functions, but only if the
function is created using the DETERMINISTIC clause. True or False? Mark for Review
(1) Points
True (*)
False
INDEX BY BINARY_INTEGER;
PROCEDURE emp_proc
...
END emp_pkg;
(1) Points
True
False (*)
(p_dept_id IN -- Position A
employees.department_id%TYPE)
IS v_total_sal NUMBER;
BEGIN
END total_sal;
(1) Points
Position A
Position B (*)
Position C
v_emptab t_emp;
BEGIN
FORALL i IN v_emptab.FIRST..v_emptab.LAST
END LOOP;
END insert_emps;
(1) Points
6. FORALL can only be used with the INSERT statement. True or False? Mark
for Review
(1) Points
True
False (*)
[Correct] Correct
7. In the following example, where do you place the phrase BULK COLLECT?
...
BEGIN
SELECT -- Position A
salary -- Position B
-- Position D
...
(1) Points
Position A
Position B (*)
Position C
Position D
8. In the following example, where do you place the phrase BULK COLLECT?
DECLARE
names NameList;
BEGIN
OPEN c1;
FETCH c1 -- Position B
INTO -- Position C
names;
...
CLOSE c1;
END;
(1) Points
Position A
Position B (*)
Position C
(1) Points
Return more readily any exceptions that are raised by the statement
10. The following statement is a valid example of using the RETURNING clause. True
or False?
DECLARE
emp_info EmpRec;
emp_id NUMBER := 100;
BEGIN
END;
(1) Points
True (*)
False
[Correct] Correct
Section 1
(1) Points
Recalculating the total salary bill for a department whenever an employee's salary is changed
Keeping a log of how many rows have been inserted into a table
2. You can use a database trigger to prevent invalid transactions from being
committed. True or False? Mark for Review
(1) Points
True (*)
False
[Incorrect] Incorrect. Refer to Section 13 Lesson 1.
(1) Points
It executes automatically whenever a particular event occurs within the database. (*)
[Correct] Correct
4. 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 (*)
5. Which of the following events could NOT automatically fire a database trigger?
Mark for Review
(1) Points
You click your mouse on a button to choose the correct answer to this question (*)
A DML operation on a view
6. 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] Correct
7. A business rule states that an employee's salary must be between 4000 and
30000. We could enforce this rule using a check constraint, but it is better to use a database trigger.
True or False? Mark for Review
(1) Points
True
False (*)
[Correct] Correct
8. Which of the following are good guidelines to follow when creating triggers?
(Choose two) Mark for Review
(1) Points
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
(1) Points
mypack.packproc;
mytrigg; (*)
myproc;
v_number := myfunc;
IF NOT myfunc THEN ... (*)
10. Which of the following are NOT allowed within a database trigger? (Choose two)
Mark for Review
(1) Points
COMMIT (*)
INSERT
A Boolean variable
SAVEPOINT (*)
[Incorrect] Incorrect. Refer to Section 13 Lesson 1.
1. 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
BEGIN ...
BEGIN ...
BEGIN ...
BEGIN ...
(*)
BEGIN
COMMIT;
END;
(1) Points
A DML trigger cannot itself contain a DML statement such as INSERT INTO audit_table.
3. Which of the following are possible keywords for the timing component of a
trigger? (Choose three.) Mark for Review
(1) Points
BEFORE (*)
INSTEAD
WHENEVER
INSTEAD OF (*)
AFTER (*)
4. 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
[Incorrect] Incorrect. Refer to Section 13 Lesson 2.
BEGIN
RAISE_APPLICATION_ERROR(-20101,'Invalid delete');
END IF;
END;
(1) Points
It should be a BEFORE trigger because if an AFTER trigger were created, the employee would
already have been deleted by the time the trigger checks the date. (*)
It should be a BEFORE trigger because you cannot use RAISE_APPLICATION_ERROR with AFTER
triggers.
It should be an AFTER trigger because the Oracle Server cannot fire the trigger until it knows
that the employee has been deleted.
It does not matter, either a BEFORE or an AFTER trigger could be created.
6. An AFTER UPDATE trigger can specify more than one column. True or False?
Mark for Review
(1) Points
True (*)
False
7. A BEFORE statement trigger inserts a row into a logging table every time a user
updates the salary column of the employees table. The user now tries to update the salaries of three
employees with a single UPDATE statement, but the update fails because it violates a check constraint.
How many rows will be inserted into the logging table? Mark for Review
(1) Points
None, the transactions are rolled back because the update failed. (*)
One
Three
Four
8. There are five employees in department 50. A statement trigger is created by:
BEGIN ...
(1) Points
Six times, once after each row and once at the end of the statement
BEGIN
-- Line A
RAISE_APPLICATION_ERROR('Cannot update salary');
ELSE
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?
(1) Points
IF UPDATE('SALARY') THEN
IF UPDATING(SALARY) THEN
IF UPDATE(SALARY) THEN
[Correct] Correct
2. 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. (*)
3. Examine the following code. To create a row trigger, what code should be
included at Line A?
---- Line A
BEGIN ...
(1) Points
4. 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
One time
Two times
Five times
Eight times
[Correct] Correct
BEGIN
VALUES -- Point A
END;
At point A, which of the following will insert the correct data into the logging table? (Choose two.)
(1) Points
(:OLD.employee_id, :OLD.job_id);
(:NEW.employee_id, :OLD.job_id);
(NEW.employee_id, NEW.job_id);
6. 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] Correct
7. Which of the following statements about INSTEAD OF triggers are NOT true?
(Choose two.) Mark for Review
(1) Points
BEGIN
DBMS_OUTPUT.PUT_LINE('Sample Message');
END;
Departments 50 and 80 exist but department 81 does not. A user now executes the following
statement:
What happens?
(1) Points
Two rows are updated and "Sample Message" is displayed once.
[Correct] Correct
9. 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
COMPOUND TRIGGER
BEGIN
-- some action
BEGIN
-- some action
BEGIN
-- some action
END compound_trigger;
(1) Points
1. Which of the following could NOT cause a DDL or Database Event trigger to fire? Mark
for Review
(1) Points
A table is dropped.
(1) Points
A DDL trigger
A Database Event trigger (*)
A DML trigger
A statement trigger
An INSTEAD OF trigger
[Correct] Correct
3. User HARJIT wants to prevent any objects which he owns from being dropped.
Harjit decides to execute the following code:
---- Line A
BEGIN
RAISE_APPLICATION_ERROR(-20201,'Attempted drop');
END;
(1) Points
BEFORE DROP ON HARJIT
4. 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] Correct
5. The database administrator wants to write a log record every time any user's
session raises an ORA-00942 exception. The DBA decides to create the following trigger:
BEGIN
-- Line A
END;
(1) Points
IF (SERVERERROR(942)) THEN
IF (IS_SERVERERROR(ORA-00942)) THEN
6. What is the benefit of using the CALL statement in a trigger body? Mark
for Review
(1) Points
It allow both DDL events and database events to be handled by a single trigger.
It allows the database administrator to monitor who is currently connected to the database.
BEGIN
CALL del_emp_proc
END;
(1) Points
When CALL is used, the BEGIN and END; statements should be omitted. (*)
When using CALL, only one DML statement can be tested, so UPDATE OR DELETE is wrong.
[Correct] Correct
8. What is wrong with the following code?
DECLARE
v_max_sal employees.salary%TYPE;
BEGIN
END;
(1) Points
The trigger body is reading the same table (employees) that the triggering event is updating. (*)
9. Mutating table errors can be caused by DML triggers, but not by database event
triggers. True or False? Mark for Review
(1) Points
True (*)
False
[Correct] Correct
10. 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 (*)
[Incorrect] Incorrect. Refer to Section 13 Lesson 4.
1. 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.
(1) Points
True
False (*)
3. 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 should you
use? Mark for Review
(1) Points
4. Which command would you use to see if your triggers are enabled or disabled?
Mark for Review
(1) Points
FROM USER_TRIGGERS;
(*)
FROM USER_OBJECTS
FROM USER_TRIGGERS;
DESCRIBE TRIGGER
[Correct] Correct
5. User KULJIT creates two triggers named EMP1_TRIGG and EMP2_TRIGG, which
are both DML triggers referencing her EMPLOYEES table. Kuljit now wants to remove both of these
triggers from the database. What command(s) should Kuljit use to do this? Mark for Review
(1) Points
(*)
DROP TRIGGER emp1_trigg AND emp2_trigg;
[Correct] Correct
BEGIN
...
END;
The user now tries to drop the EMPLOYEES table. What happens?
(1) Points
An error message is displayed because you cannot drop a table that is referenced by a trigger.
1. Which of the following could NOT cause a DDL or Database Event trigger to fire? Mark
for Review
(1) Points
A table is dropped.
(1) Points
A DDL trigger
A DML trigger
A statement trigger
An INSTEAD OF trigger
3. User HARJIT wants to prevent any objects which he owns from being dropped.
Harjit decides to execute the following code:
---- Line A
BEGIN
RAISE_APPLICATION_ERROR(-20201,'Attempted drop');
END;
(1) Points
[Correct] Correct
4. 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 (*)
5. The database administrator wants to write a log record every time any user's
session raises an ORA-00942 exception. The DBA decides to create the following trigger:
BEGIN
-- Line A
END;
(1) Points
IF (SERVERERROR(942)) THEN
IF (IS_SERVERERROR(942)) THEN (*)
IF (IS_SERVERERROR(ORA-00942)) THEN
6. What is the benefit of using the CALL statement in a trigger body? Mark
for Review
(1) Points
It allow both DDL events and database events to be handled by a single trigger.
It allows the database administrator to monitor who is currently connected to the database.
It allows the trigger body code to be placed in a separate procedure. (*)
[Correct] Correct
BEGIN
CALL del_emp_proc
END;
(1) Points
When CALL is used, the BEGIN and END; statements should be omitted. (*)
DECLARE
v_max_sal employees.salary%TYPE;
BEGIN
END;
(1) Points
The trigger body is reading the same table (employees) that the triggering event is updating. (*)
9. Mutating table errors can be caused by DML triggers, but not by database event
triggers. True or False? Mark for Review
(1) Points
True (*)
False
[Correct] Correct
10. 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 (*)
1. PL/SQL procedure A invokes procedure B, which in turn invokes procedure C, which references
table T. If table T is dropped, which of the following statements is true? Mark for Review
(1) Points
What will happen to the procedure if a new column is added to the employees table?
(1) Points
The procedure will still be valid and execute correctly because it does not reference the added
column.
The procedure will be marked invalid and must be recompiled before it can be reexecuted. (*)
[Correct] Correct
3. View dept_view is based on a select from table departments. Procedure
show_dept contains code which selects from dept_view. Which of the following statements are true?
(Choose three.) Mark for Review
(1) Points
(1) Points
True (*)
False
(1) Points
DEPTREE
USER_DEPENDENCIES (*)
USER_REFERENCES
USER_LOCAL_DEPENDENCIES
[Correct] Correct
6. Which of the following statements will show whether procedure myproc is valid
or invalid? Mark for Review
(1) Points
(*)
7. Which of the following database objects are created when the utldtree.sql script
is run? (Choose three.) Mark for Review
(1) Points
(1) Points
BEGIN deptree_fill('TABLE','EMPLOYEES');
END;
BEGIN deptree_fill('PROCEDURE','ALICE','SHOW_EMPS');
END;
BEGIN deptree_fill('ALICE','TABLE','EMPLOYEES');
END;
BEGIN deptree_fill('TABLE','ALICE','EMPLOYEES');
END;
(*)
BEGIN deptree_fill('ALICE','PROCEDURE','SHOW_EMPS');
END;
(1) Points
10. The IDEPTREE view shows dependencies by indenting the lines of output instead
of by using a NESTED_LEVEL column. True or False? Mark for Review
(1) Points
True (*)
False
[Incorrect] Incorrect. Refer to Section 14 Lesson 1.
11. Procedure get_depts has been marked invalid because one of the objects it
references has been altered. Which of the following statements are true? (Choose two.) Mark for
Review
(1) Points
The procedure will be recompiled automatically the next time it is invoked. The recompilation
will always be successful.
The procedure will be recompiled automatically the next time it is invoked. The recompilation
may or may not be successful.
(*)
(*)
Which of the following changes to the employees table will allow the procedure to be recompiled
successfully ? (Choose two.)
(1) Points
The table is dropped but a public table exists with the same name and structure. (*)
13. Which of the following will NOT help to minimize dependency failures? (Choose
two.) Mark for Review
(1) Points
14. Package emp_pack contains two public procedures: get_emps and upd_emps. A
separate procedure emp_proc invokes emp.pack.get_emps. The upd_emps package body code is now
altered, and the package body (but not the package specification) is recreated.
(1) Points
True
False (*)
[Correct] Correct
1. A remote dependency is when a dependent object resides on a database on a separate node.
True or False? Mark for Review
(1) Points
True (*)
False
[Correct] Correct
2. With remote dependencies, one master data dictionary that resides on one
server identifies the status of all schema objects. True or False? Mark for Review
(1) Points
True
False (*)
[Correct] Correct
3. The Data Dictionary controls the remote dependency mode. True or False?
Mark for Review
(1) Points
True
False (*)
[Correct] Correct
4. Which statement for setting a database parameter is the default for remote
dependency checking? Mark for Review
(1) Points
[Correct] Correct
- Procedure B is remote and has a local time stamp of 5 AM and has a remote time stamp of 4 AM
(1) Points
True
False (*)
[Correct] Correct
6. In Signature Mode, a procedure will not compile if the signatures of the remote
dependencies do not match. True or False? Mark for Review
(1) Points
True (*)
False
[Correct] Correct
- Procedure A is local, executed, and invalidated because the remote Procedure B time stamp does not
match the local time stamp for Procedure B
- Procedure A is recompiled.
(1) Points
True (*)
False
(1) Points
True
False (*)
(1) Points
True (*)
False
10. With remote dependencies, one master data dictionary that resides on one
server identifies the status of all schema objects. True or False? Mark for Review
(1) Points
True
False (*)
[Correct] Correct
11. The Data Dictionary controls the remote dependency mode. True or False?
Mark for Review
(1) Points
True
False (*)
[Correct] Correct
12. Which statement for setting a database parameter is the default for remote
dependency checking? Mark for Review
(1) Points
- Procedure B is remote and has a local time stamp of 5 AM and has a remote time stamp of 4 AM
(1) Points
True
False (*)
14. In Signature Mode, a procedure will not compile if the signatures of the remote
dependencies do not match. True or False? Mark for Review
(1) Points
True (*)
False
15. In this scenario, the following status is given for each procedure:
- Procedure A is local, executed, and invalidated because the remote Procedure B time stamp does not
match the local time stamp for Procedure B
- Procedure A is recompiled.
(1) Points
True (*)
False
(1) Points
True
False (*)
1. To set the PLSQL_CODE_TYPE to its fastest execution speed, which command do you use?
Mark for Review
(1) Points
2. PLSQL_CODE_TYPE determines the type of code for both PL/SQL code and for
SQL statements, which is what speeds up the execution speed. True or False? Mark for Review
(1) Points
True
False (*)
(1) Points
Separating compiled code so that separate units may be repeated as needed (*)
(1) Points
True (*)
False
[Correct] Correct
5. Which data dictionary view allows you to see the setting for
PLSQL_OPTIMIZE_LEVEL? Mark for Review
(1) Points
USER_PLSQL_OBJECTS
USER_PLSQL_OPTIMIZE
USER_PLSQL_OBJECT_SETTINGS (*)
USER_OBJECT_SETTINGS
USER_PLSQL_CODE_TYPE
[Correct] Correct
6. What are the valid values for PLSQL_OPTIMIZE_LEVEL in the data dictionary?
Mark for Review
(1) Points
0,1,2,3 (*)
0,1,2,3,4
1,2,3
1,2,3,4
(1) Points
True (*)
False
2. A warning in PL/SQL is the same as an error in PL/SQL, but can only be viewed
through the USER_ERRORS data dictionary view. True or False? Mark for Review
(1) Points
True
False (*)
(1) Points
INFORMATIONAL
PERFORMANCE
ALL
SEVERE (*)
ERROR
4. The informational warning level for PL/SQL compiled code identifies the code
that may cause execution speed to be slow. True or False? Mark for Review
(1) Points
True
False (*)
[Correct] Correct
DBMS_WARNING.ADD_WARNING_SETTING_CAT
('INFORMATIONAL','ENABLE','SESSION');
and
ALTER SESSION
(1) Points
True (*)
False
[Incorrect] Incorrect. Refer to Section 15 Lesson 2.
(1) Points
DBMS_WARNING.SET_WARNING_SETTING_STRING (*)
DBMS_WARNING.ADD_WARNING_SETTING_CAT
DBMS_WARNING.GET_WARNING_SETTING_STRING (*)
DBMS_WARNING.GET_WARNING_STRING
1. Conditional compilation allows you to include extra code to help with debugging, which can be
removed once errors are resolved. True or False? Mark for Review
(1) Points
True (*)
False
2. You can choose which code to include in a PL/SQL program based on conditional
compilation directives. True or False? Mark for Review
(1) Points
True (*)
False
(1) Points
$IF
$THEN
$ELSE
$END
$CCFLAG
$$IF
$$THEN
$$ELSE
$$ELSIF
$$END
$IF
$THEN
$ELSE $ELSIF
$ENDIF
$IF
$THEN
$ELSE
$ELSIF
$END
(*)
$$IF
$$THEN
$$ELSE
$$END
$$DEBUG
4. Inquiry directives are used to selectively include or exclude PL/SQL code based
on values of pre-defined variables that are set using the PLSQL_CCFLAGS parameter. True or False?
Mark for Review
(1) Points
True
False (*)
[Correct] Correct
5. The value of DBMS_DB_VERSION.VER_LE_11 is TRUE when the version of the
Oracle database is version 11 or greater. True or False? Mark for Review
(1) Points
True
False (*)
[Correct] Correct
6. If the version and release of the Oracle database in use is 10.2, what statement
will allow syntax available in version 10.2 or later? Mark for Review
(1) Points
-- some messaage
$ELSE
-- some action
$END
$IF DBMS_DB_VERSION.VER_LE_10_2 $THEN
-- some messaage
$ELSE
-- some action
$END;
-- some messaage
$ELSE
-- some action
$END
(*)
-- some messaage
$ELSE
-- some action
$END;
1. One benefit of obfuscation is to protect intellectual property written in PL/SQL. True or False?
Mark for Review
(1) Points
True (*)
False
[Correct] Correct
2. Obfuscation allows the owner to see the source code, but not the users to
whom EXECUTE privileges have been granted. True or False? Mark for Review
(1) Points
True
False (*)
True (*)
False
[Correct] Correct
BEGIN
-- Line A
IS BEGIN
END mycleverproc;');
END;
(1) Points
DBMS_DML.CREATE_WRAP
DBMS_DDL.CREATE_WRAP
DBMS_DDL.CREATE_WRAPPED (*)
DBMS_DDL.WRAPPED
DBMS_DDL.WRAP_CODE
5. To create obfuscated code using the wrapper utility, determine the order in
which to execute the following steps.
A Connect to the database and execute the wrapped text file as a script to compile the wrapped code
into the Data Dictionary.
D Execute WRAP to create a second text file containing the wrapped code.
(1) Points
A,B,C,D
B,C,D,A (*)
C,D,A,B
C,A,B,D
B,D,C,A
6. For PL/SQL code larger than 32,767 characters, you must use the wrap utility.
True or False? Mark for Review
(1) Points
True (*)
False
[Incorrect] Incorrect. Refer to Section 15 Lesson 4.