1.
Examine this procedure: CREATE OR REPLACE PROCEDURE
DELETE_PLAYER(V_IDIN NUMBER) IS BEGIN DELETE FROM PLAYER WHERE ID =
V_ID EXCEPTION WHEN STATS_EXI TS_EXCEPTI ON THEN DBMS_OUTPUT.
PUT_LINE(Cannotdeletethisplayer, childrecordsexistin PLAYER_BAT_STAT table);END;
What prevents this procedure from being created successfully?
Correct Answer
C. The STATS_EXIST_EXCEPTION has not been declared as an exception.
Explanation
The procedure cannot be created successfully because the STATS_EXIST_EXCEPTION has not been declared as an exception. In PL/SQL, when defining a procedure, any exceptions that are used within the procedure must be declared beforehand. Since STATS_EXIST_EXCEPTION has not been declared, the procedure cannot reference it as an exception.
2.
Under which two circumstances do you design database triggers? (Choose two)
Correct Answer(s)
C. To guarantee that when a specific operation is performed, related actions are performed.
D. For centralized, global operations that should be fired for the triggering statement, regardless of which user or application issues the statement.
Explanation
Database triggers are designed under two circumstances:
1) To guarantee that when a specific operation is performed, related actions are performed. This means that when a certain event occurs in the database, the trigger will automatically execute a set of actions or procedures to ensure data consistency or enforce business rules.
2) For centralized, global operations that should be fired for the triggering statement, regardless of which user or application issues the statement. This means that the trigger is designed to respond to a specific statement or event, regardless of who or what initiated it, ensuring consistent behavior across the database.
3.
Local procedure A calls remote procedure B. Procedure B was compiled at 8 A.M. Procedure A was modified and recompiled at 9 A.M. Remote procedure B was later modified and recompiled at 11 A.M. The dependency mode is set to TI MESTAMP. What happens when procedure A is invoked at 1 P.M?
Correct Answer
D. Procedure A is invalidated and recompiles for the second time it is invoked.
Explanation
When the dependency mode is set to TIMESTAMP, it means that the procedure's timestamp is checked to determine if it needs to be recompiled. In this scenario, procedure A was modified and recompiled at 9 A.M, and procedure B was modified and recompiled at 11 A.M. When procedure A is invoked at 1 P.M, its timestamp will be compared to the timestamp of procedure B, and since procedure B was recompiled after procedure A, procedure A will be invalidated and recompiled for the second time it is invoked.
4.
What is a condition predicate in a DML trigger?
Correct Answer
C. A conditional predicate allows you to combine several DBM triggering events into one in the trigger body.
5.
This statement fails when executed:
CREATE OR REPLACE TRI GGER CALC_TEAM_AVG
AFTER I NSERT ON PLAYER
BEGIN
INSERT INTO PLAYER_BATSTAT ( PLAYER_I D, SEASON_YEAR, AT_BATS, HI TS)
VALUES ( : NEW. I D, 1 997, 0, 0) ;
END;
To which type must you convert the trigger to correct the error?
Correct Answer
A. Row
Explanation
The given statement is a row-level trigger because it is triggered after each row is inserted into the PLAYER table. To correct the error, the trigger must be converted to a statement-level trigger. This means that the trigger will be executed once for each statement, regardless of the number of rows affected.
6.
An internal LOB is _____.
Correct Answer
C. Stored in the database.
Explanation
An internal LOB refers to a large object data type, such as text, image, or binary data, that is stored in the database. It is not a table or a column that is a primary key. Additionally, it is not a file stored outside of the database with an internal pointer to it from a database column. Therefore, the correct answer is that an internal LOB is stored in the database.
7.
You need to disable all triggers on the EMPLOYEES table. Which command accomplishes this?
Correct Answer
D. ALTER TABLE employees DISABLE ALL TRIGGERS;
Explanation
The correct answer is "ALTER TABLE employees DISABLE ALL TRIGGERS;" as this command specifically targets the EMPLOYEES table and disables all triggers associated with it. The other options provided are incorrect as they either do not include the "TABLE" keyword or do not specify disabling all triggers.
8.
You have a row level BEFORE UPDATE trigger on the EMP table. This trigger contains a SELECT statement on the EMP table to ensure that the new salary value falls within the minimum and maximum salary for a given job title. What happens when you try to update a salary value in the EMP table?
Correct Answer
C. The trigger fails because a SELECT statement on the table being updated is not allowed.
Explanation
The trigger fails because a SELECT statement on the table being updated is not allowed. In Oracle, when a trigger is fired, it cannot contain a SELECT statement on the table that is being updated. This is to prevent any potential conflicts or inconsistencies that may arise from querying the same table that is currently being modified. Therefore, in this scenario, the trigger fails because it violates this restriction.
9.
You need to implement a virtual private database (vpd). In order to have the vpd functionality, a trigger is required to fire when every user initiates a session in the database. What type of trigger needs to be created?
Correct Answer
B. System event trigger
Explanation
A system event trigger needs to be created in order to have the virtual private database (vpd) functionality. This type of trigger fires when every user initiates a session in the database, allowing for the implementation of the vpd.
10.
Which two program declarations are correct for a stored program unit? (Choose two)
Correct Answer(s)
A. CREATE OR REPLACE FUNCTION tax_amt (p_id NUMBER) RETURN NUMBER
C. CREATE OR REPLACE PROCEDURE tax_amt (p_id NUMBER, p_amount OUT NUMBER)
Explanation
The two correct program declarations for a stored program unit are:
1) CREATE OR REPLACE FUNCTION tax_amt (p_id NUMBER) RETURN NUMBER
This is a correct declaration for a stored function named tax_amt that takes in a parameter p_id of type NUMBER and returns a value of type NUMBER.
2) CREATE OR REPLACE PROCEDURE tax_amt (p_id NUMBER, p_amount OUT NUMBER)
This is a correct declaration for a stored procedure named tax_amt that takes in two parameters: p_id of type NUMBER and p_amount of type NUMBER. The p_amount parameter is an OUT parameter, meaning it can be used to return a value to the calling program.
11.
The creation of which four database objects will cause a DDL trigger to fire? (Choose four)
Correct Answer(s)
A. Index
C. Package
D. Function
E. Synonyms
Explanation
When an Index, Package, Function, or Synonym is created, it will cause a DDL (Data Definition Language) trigger to fire. DDL triggers are used to perform actions in response to changes in the database schema, such as the creation or modification of objects. In this case, the creation of these four objects will trigger the DDL trigger to execute any associated actions or code.
12.
Examine this code:
CREATE OR REPLACE PROCEDURE insert_dept (p_location_id NUMBER)
IS v_dept_id NUMBER(4);
BEGIN INSERT INTO departments
VALUES (5, .Education ., 150, p_location_id);
SELECT department_id INTO v_dept_id FROM employees WHERE employee_id=99999;
END insert_dept; /
CREATE OR REPLACE PROCEDURE insert_location ( p_location_id NUMBER, p_city VARCHAR2)
IS BEGIN
INSERT INTO locations(location_id, city)
VALUES (p_location_id, p_city);
insert_dept(p_location_id);
END insert_location; /
You just created the departments, the locations, and the employees table. You did not insert any rows. Next you created both procedures. You new invoke the insert_location procedure using the following command: EXECUTE insert_location (19, .San Francisco .) What is the result in this EXECUTE command?
Correct Answer
A. The locations, departments, and employees tables are empty.
Explanation
The result of the EXECUTE command is that the locations, departments, and employees tables are empty. This is because the code does not include any INSERT statements to populate the tables with data. Therefore, when the insert_location procedure is invoked, it does not insert any rows into the tables.
13.
What is true about stored procedures?
Correct Answer
C. A stored procedure must have at least one executable statement in the procedure body.
Explanation
A stored procedure must have at least one executable statement in the procedure body. This means that a stored procedure cannot be empty and must contain at least one statement that can be executed when the procedure is called.
14.
Examine the trigger:
CREATE OR REPLACE TRIGGER Emp_count
AFTER DELETE ON Emp_tab
FOR EACH ROW
DELCARE n INTEGER;
BEGIN SELECT COUNT(*) INTO n FROM Emp_tab;
DMBS_OUTPUT.PUT_LINE( . There are now . || a || . employees, .);
END;
This trigger results in an error after this SQL statement is entered: DELETE FROM Emp_tab WHERE Empno = 7499;
How do you correct the error?
Correct Answer
D. Change the trigger to a statement-level trigger by removing FOR EACH ROW.
Explanation
The error in the trigger is caused by the presence of the "FOR EACH ROW" clause. This clause is used for row-level triggers, but in this case, the trigger should be a statement-level trigger. By removing the "FOR EACH ROW" clause, the trigger will be corrected and will no longer result in an error.
15.
The OLD and NEW qualifiers can be used in which type of trigger?
Correct Answer
A. Row level DML trigger
Explanation
The OLD and NEW qualifiers can be used in row level DML triggers. These qualifiers allow access to the old and new values of the affected rows in the trigger body. This is useful when performing actions based on changes made to specific columns in a table. In row level system triggers, statement level DML triggers, row level application triggers, statement level system triggers, and statement level application triggers, the OLD and NEW qualifiers are not available.
16.
Which view displays indirect dependencies, indenting each dependency?
Correct Answer
B. IDEPTREE
Explanation
IDEPTREE is the correct answer because it is the view that displays indirect dependencies, indenting each dependency. This view provides a clear and organized representation of the dependencies by indenting each level, making it easier to understand the relationship between different elements.
17.
Examine this code:
CREATE OR REPLACE PROCEDURE audit_action (p_who VARCHAR2) AS
BEGIN INSERT INTO audit(schema_user) VALUES(p_who);
END audit_action; /
CREATE OR REPLACE TRIGGER watch_it
AFTER LOGON ON DATABASE CALL audit_action(ora_login_user) /
What does this trigger do?
Correct Answer
D. The trigger invokes the procedure audit_action each time a user logs on to the database and adds the username to the audit table.
Explanation
The given trigger, "watch_it", is an "AFTER LOGON" trigger, which means it will be executed after a user logs on to the database. This trigger calls the "audit_action" procedure and passes the "ora_login_user" as the parameter, which represents the username of the user who logged in. The "audit_action" procedure then inserts the username into the "audit" table. Therefore, the trigger invokes the procedure each time a user logs on to the database and adds the username to the audit table.
18.
Examine this procedure:
CREATE OR REPLACE PROCEDURE UPD_BAT_STAT (V_ID IN NUMBER DEFAULT 10, V_AB IN NUMBER DEFAULT 4) IS
BEGIN
UPDATE PLAYER_BAT_STAT
SET AT_BATS = AT_BATS + V_AB
WHERE PLAYER_ID = V_ID;
COMMIT;
END;
Which two statements will successfully invoke this procedure in SQL *Plus? (Choose two)
Correct Answer(s)
A. EXECUTE UPD_BAT_STAT;
B. EXECUTE UPD_BAT_STAT(V_AB=>10, V_ID=>31);
Explanation
The correct answer is "EXECUTE UPD_BAT_STAT;" and "EXECUTE UPD_BAT_STAT(V_AB=>10, V_ID=>31);". These two statements will successfully invoke the procedure in SQL *Plus. The first statement invokes the procedure with the default values for V_ID and V_AB. The second statement invokes the procedure with specific values for V_ID and V_AB.
19.
Examine this code:
CREATE OR REPLACE FUNCTION gen_email_name (p_first_name VARCHAR2, p_last_name VARCHAR2, p_id NUMBER)
RETURN VARCHAR2 IS
v_email_name VARCHAR2(19);
6
BEGIN v_email_name := SUBSTR(p_first_name, 1, 1) || SUBSTR(p_last_name, 1, 7) || [email protected] .;
UPDATE employees SET email = v_email_name
WHERE employee_id = p_id; RETURN v_email_name;
END;
Which statement removes the function?
Correct Answer
D. DROP FUNCTION gen_email_name;
Explanation
The DROP FUNCTION gen_email_name; statement removes the function gen_email_name from the database. This statement is used to delete a stored function from the database.
20.
Examine this code:
CREATE OR REPLACE PACKAGE comm_package IS
g_comm NUMBER := 10;
PROCEDURE reset_comm(p_comm IN NUMBER);
END comm_package; /
User Jones executes the following code at 9:01am:
EXECUTE comm_package.g_comm := 15
User Smith executes the following code at 9:05am:
EXECUTE comm_paclage.g_comm := 20 Which statement is true?
Correct Answer
B. G_comm has a value of 15 at 9:06am for Jones.
Explanation
At 9:01am, Jones executes the code "EXECUTE comm_package.g_comm := 15", which sets the value of g_comm to 15. Therefore, at 9:06am, g_comm will still have a value of 15 for Jones.
21.
Examine this package:
CREATE OR REPLACE PACKAGE BB_PACK IS V_MAX_TEAM_SALARY NUMBER(12,2);
PROCEDURE ADD_PLAYER(V_ID IN NUMBER, V_LAST_NAME VARCHAR2, V_SALARY NUMBER);
END BB_PACK; /
CREATE OR REPLACE PACKAGE BODY BB_PACK IS
V_PLAYER_AVG NUMBER(4,3);
PROCEDURE UPD_PLAYER_STAT V_ID IN NUMBER, V_AB IN NUMBER DEFAULT 4, V_HITS IN NUMBER) IS
BEGIN UPDATE PLAYER_BAT_STAT SET AT_BATS = AT_BATS + V_AB, HITS = HITS + V_HITS WHERE PLAYER_ID = V_ID;
COMMIT;
VALIDATE_PLAYER_STAT(V_ID);
END UPD_PLAYER_STAT;
PROCEDURE ADD_PLAYER (V_ID IN NUMBER, V_LAST_NAME VARCHAR2, V_SALARY NUMBER) IS
BEGIN INSERT INTO PLAYER(ID,LAST_NAME,SALARY) VALUES (V_ID, V_LAST_NAME, V_SALARY); UPD_PLAYER_STAT(V_ID,0,0);
END ADD_PLAYER;
END BB_PACK /
Which statement will successfully assign .333 to the V_PLAYER_AVG variable from a procedure outside the package?
Correct Answer
D. This variable cannot be assigned a value from outside of the package.
Explanation
The given package BB_PACK does not have a public variable named V_PLAYER_AVG. It only has a private variable V_PLAYER_AVG declared in the package body. Private variables cannot be accessed or assigned a value from outside of the package. Therefore, the correct answer is that the variable cannot be assigned a value from outside of the package.
22.
What can you do with the DBMS_LOB package?
Correct Answer
D. Use the DBMS_LOB.FILECLOSE procedure to close the file being accessed.
Explanation
The DBMS_LOB package in a database management system (DBMS) allows users to manipulate large objects (LOBs) such as BFILEs. One of the functionalities provided by this package is the ability to close a file that is being accessed. This is done using the DBMS_LOB.FILECLOSE procedure. By closing the file, the user ensures that no further operations can be performed on it, preventing any potential issues or conflicts.
23.
Examine this package:
CREATE OR REPLACE PACKAGE manage_emps IS
tax_rate CONSTANT NUMBER(5,2) := .28;
v_id NUMBER;
PROCEDURE insert_emp (p_deptno NUMBER, p_sal NUMBER);
PROCEDURE delete_emp; PROCEDURE update_emp;
FUNCTION calc_tax (p_sal NUMBER) RETURN NUMBER;
END manage_emps; /
CREATE OR REPLACE PACKAGE BODY manage_emps IS
PROCEDURE update_sal (p_raise_amt NUMBER) IS
BEGIN UPDATE emp SET sal = (sal * p_raise_emt) + sal WHERE empno = v_id;
END;
PROCEDURE insert_emp (p_deptno NUMBER, p_sal NUMBER) IS
BEGIN INSERT INTO emp(empno, deptno, sal) VALYES(v_id, p_depntno, p_sal);
END insert_emp;
PROCEDURE delete_emp IS
BEGIN DELETE FROM emp WHERE empno = v_id;
END delete_emp;
PROCEDURE update_emp IS v_sal NUMBER(10, 2); v_raise NUMBER(10, 2);
BEGIN SELECT sal INTO v_sal FROM emp WHERE empno = v_id;
IF v_sal < 500 THEN v_raise := .05;
ELSIF v_sal < 1000 THEN v_raise := .07;
ELSE v_raise := .04;
END IF; update_sal(v_raise);
END update_emp;
FUNCTION calc_tax (p_sal NUMBER) RETURN NUMBER IS
BEGIN RETURN p_sal * tax_rate;
END calc_tax;
END manage_emps; /
What is the name of the private procedure in this package?
Correct Answer
C. UPDATE_SAL
Explanation
The name of the private procedure in this package is UPDATE_SAL.
24.
Which two dopes the INSTEAD OF clause in a trigger identify? (Choose two)
Correct Answer(s)
A. The view associated with the trigger.
C. The event associated with the trigger.
Explanation
The INSTEAD OF clause in a trigger identifies the view associated with the trigger and the event associated with the trigger.
25.
Which three are valid ways to minimize dependency failure? (Choose three)
Correct Answer(s)
A. Querying with the SELECT * notification.
B. Declaring variables with the %TYPE attribute.
D. Declaring records by using the %ROWTYPE attribute.
Explanation
Specifying schema names when referencing objects helps to minimize dependency failure by ensuring that the correct object is referenced, even if there are multiple objects with the same name in different schemas. Querying with the SELECT * notification minimizes dependency failure by retrieving all columns from a table, ensuring that any changes to the table's structure are automatically reflected in the query. Declaring variables with the %TYPE attribute minimizes dependency failure by automatically adjusting the variable's data type if the referenced object's data type is changed. Declaring records by using the %ROWTYPE attribute minimizes dependency failure by automatically adjusting the record's structure if the referenced table's structure is changed.
26.
Examine this code: CREATE OR REPLACE PROCEDURE add_dept ( p_name departments.department_name%TYPE DEFAULT .unknown ., p_loc departments.location_id%TYPE DEFAULT 1700) IS BEGIN INSERT INTO departments(department_id, department_name, loclation_id) VALUES(dept_seq.NEXTVAL,p_name, p_loc); END add_dept; / You created the add_dept procedure above, and you now invoke the procedure in SQL *Plus.
Which four are valid invocations? (Choose four)
Correct Answer(s)
A. EXECUTE add_dept(p_loc=>2500)
B. EXECUTE add_dept('Education', 2500)
C. EXECUTE add_dept('2500', p_loc =>2500)
E. EXECUTE add_dept(p_loc=>2500, p_name=>'Education')
Explanation
The given code is creating a procedure called "add_dept" with two parameters, "p_name" and "p_loc". The "p_name" parameter has a default value of ".unknown" and the "p_loc" parameter has a default value of 1700. The procedure inserts a new row into the "departments" table using the values passed as parameters.
The four valid invocations of the "add_dept" procedure are:
1. EXECUTE add_dept(p_loc=>2500): This invocation passes a value of 2500 for the "p_loc" parameter, using the named parameter syntax.
2. EXECUTE add_dept('Education', 2500): This invocation passes the values 'Education' and 2500 for the "p_name" and "p_loc" parameters, respectively.
3. EXECUTE add_dept('2500', p_loc =>2500): This invocation passes the values '2500' and 2500 for the "p_name" and "p_loc" parameters, respectively.
4. EXECUTE add_dept(p_loc=>2500, p_name=>'Education'): This invocation passes a value of 2500 for the "p_loc" parameter and 'Education' for the "p_name" parameter, using the named parameter syntax.
27.
Which two describe a stored procedure? (Choose two)
Correct Answer(s)
B. A stored procedure is a named PL/SQL block that can accept parameters.
C. A stored procedure is a type of PL/SQL subprogram that performs an action.
Explanation
A stored procedure is a named PL/SQL block that can accept parameters, meaning it can be given a specific name and can take in input values. It is also a type of PL/SQL subprogram that performs an action, indicating that it is designed to execute a specific task or set of tasks.
28.
To be callable from a SQL expression, a user-defined function must do what?
Correct Answer
A. Be stored only in the database.
Explanation
A user-defined function must be stored only in the database in order to be callable from a SQL expression. This means that the function must be created and saved within the database system, rather than being stored externally or in a different location. Storing the function in the database allows it to be accessed and executed within the SQL environment, making it available for use in SQL expressions.
29.
Examine the procedure:
CREATE OR REPLACE PROCEDURE INSERT TEAM
(V_ID in NUMBER,V_CITY in VARCHER2 DEFAULT ‘AUSTIN’V_NAME
in VARCHER2)
IS
BEGIN
INSERT INTO TEAM (id, city,name)
VALUES (v_id,v_city,v_name);
COMMIT; 9
END;
Which two statements will successfully invoke this procedure in SQL Plus? (Choose two)
Correct Answer(s)
B. EXECUTE INSERT_TEAM (3, V_NAME=>'LONGHORNS', V_CITY=>'AUSTIN');
C. EXECUTE INSERT_TEAM (3, 'AUSTIN', 'LONGHORNS');
Explanation
The first statement, "EXECUTE INSERT_TEAM (3, V_NAME=>'LONGHORNS', V_CITY=>'AUSTIN');" will successfully invoke the procedure because it provides the correct values for the parameters V_ID, V_NAME, and V_CITY.
The second statement, "EXECUTE INSERT_TEAM (3, 'AUSTIN', 'LONGHORNS');" will also successfully invoke the procedure because it provides the correct values for the parameters V_ID, V_CITY, and V_NAME.
30.
How can you migrate from a LONG to a LOB data type for a column?
Correct Answer
D. Use the ALTER TABLE command.
Explanation
To migrate from a LONG to a LOB data type for a column, you can use the ALTER TABLE command. This command allows you to modify the structure of a table, including changing the data type of a column. By using the ALTER TABLE command, you can alter the column's data type from LONG to LOB, which is a more modern and flexible data type for handling large amounts of data. This migration process ensures that the column can now store and manage LOB data efficiently.
31.
You need to remove the database trigger BUSINESS_HOUR . Which command do you use to remove the trigger in the SQL *Plus environment?
Correct Answer
A. DROP TRIGGER business_hour;
Explanation
The correct command to remove a trigger in the SQL *Plus environment is "DROP TRIGGER business_hour;". This command removes the trigger named "business_hour" from the database.
32.
A CALL statement inside the trigger body enables you to call ______.
Correct Answer
C. A stored procedure.
Explanation
A CALL statement inside the trigger body enables you to call a stored procedure. This allows you to execute a set of predefined instructions or actions within the trigger, providing more flexibility and functionality in the trigger's logic. By calling a stored procedure, you can encapsulate complex operations or business logic in a separate module, improving code reusability and maintainability.
33.
You are about to change the arguments of the CALC_TEAM_AVG function. Which dictionary view can you query to determine the names of the procedures and functions that invoke the CALC_TEAM_AVG function?
Correct Answer
B. USER_DEPENDENCIES
Explanation
You can query the USER_DEPENDENCIES dictionary view to determine the names of the procedures and functions that invoke the CALC_TEAM_AVG function. The USER_DEPENDENCIES view provides information about dependencies between database objects, including procedures and functions. By querying this view, you can identify which objects are dependent on the CALC_TEAM_AVG function and therefore may need to be updated if the arguments of the function are changed.
34.
You create a DML trigger. For the timing information, which is valid with a DML trigger?
Correct Answer
D. BEFORE
Explanation
A DML trigger can be set to execute either before or after a DML operation is performed. In this case, the correct answer is "BEFORE," indicating that the trigger will be executed before the DML operation takes place. This allows the trigger to modify or validate the data before it is inserted, updated, or deleted in the database table.
35.
Which type of argument passes a value from a procedure to the calling environment?
Correct Answer
C. OUT
Explanation
The type of argument that passes a value from a procedure to the calling environment is the "OUT" argument. When a procedure is called with an OUT argument, it allows the procedure to modify the value of the argument and pass it back to the calling environment. This allows for two-way communication between the procedure and the calling environment.
36.
You want to create a PL/SQL block of code that calculates discounts on customer orders. This code will be invoked from several places, but only within the program unit ORDERTOTAL. What is the most appropriate location to store the code that calculates the discounts?
Correct Answer
E. A local subprogram defined within the program unit ORDERTOTAL.
Explanation
A local subprogram defined within the program unit ORDERTOTAL is the most appropriate location to store the code that calculates the discounts. This ensures that the code is easily accessible and can be invoked from within the program unit ORDERTOTAL. Storing the code as a local subprogram also promotes modularity and encapsulation, as it keeps the code closely related to the program unit it is being used in.
37.
Which statement about triggers is true?
Correct Answer
B. You use a database trigger to fire when an INSERT statement occurs.
38.
Examine this procedure: CREATE OR REPLACE PROCEDURE ADD_PLAYER (V_ID IN NUMBER, V_LAST_NAME VARCHAR2) IS BEGIN INSERT INTO PLAYER (ID,LAST_NAME) VALUES (V_ID, V_LAST_NAME); COMMIT; END; This procedure must invoke the APD_BAT_STAT procedure and pass a parameter. Which statement,
when added to the above procedure will successfully invoke the UPD_BAT_STAT procedure?
Correct Answer
B. UPD_BAT_STAT(V_ID);
Explanation
The correct statement to successfully invoke the UPD_BAT_STAT procedure in the given procedure is "UPD_BAT_STAT(V_ID);". This statement directly calls the UPD_BAT_STAT procedure with the parameter V_ID.
39.
Which four triggering events can cause a trigger to fire? (Choose four)
Correct Answer(s)
A. A specific error or any errors occurs.
B. A database is shut down or started up.
C. A specific user or any user logs on or off.
D. A user executes a CREATE or an ALTER table statement
Explanation
A trigger can be fired when a specific error or any errors occur, when a database is shut down or started up, when a specific user or any user logs on or off, and when a user executes a CREATE or an ALTER table statement. These triggering events can activate a trigger and perform certain actions or operations based on the defined logic within the trigger.
40.
When creating a function in SQL *Plus, you receive this message: .Warning: Function created with compilation errors.. Which command can you issue to see the actual error message?
Correct Answer
C. SHOW ERRORS
Explanation
To see the actual error message when creating a function in SQL *Plus, you can issue the command "SHOW ERRORS". This command will display the compilation errors that occurred during the creation of the function, allowing you to identify and address any issues in your code.
41.
There is a CUSTOMER table in a schema that has a public synonym CUSTOMER and you are granted all object privileges on it. You have a procedure PROCESS_CUSTOMER that 11
processes customer information that is in the public synonym CUSTOMER table. You have just created a new table called CUSTOMER within your schema. Which statement is true?
Correct Answer
D. If the structure of your CUSTOMER table is the same as the public synonym CUSTOMER table then the procedure PROCESS_CUSTOMER successfully recompiles when invoked and accesses your CUSTOMER table.
Explanation
If the structure of the newly created CUSTOMER table is the same as the public synonym CUSTOMER table, the procedure PROCESS_CUSTOMER will successfully recompile and access the data from the newly created table. This is because the procedure is designed to process customer information from the public synonym CUSTOMER table, and if the structure of the new table matches that of the public synonym, the procedure can still access the data without any compilation errors.
42.
Examine this package: CREATE OR REPLACE PACKAGE BB_PACK IS V_MAX_TEAM_SALARY NUMBER(12,2); PROCEDURE ADD_PLAYER(V_ID IN NUMBER, V_LAST_NAME VARCHAR2, V_SALARY_NUMBER; END BB_PACK; / CREATE OR REPLACE PACKAGE BODY BB_PACK IS PROCEDURE UPD_PLAYER_STAT (V_ID IN NUMBER, V_AB IN NUMBER DEFAULT 4, V_HITS IN NUMBER) IS BEGIN UPDATE PLAYER_BAT_STAT SET AT_BATS = AT_BATS + V_AB, HITS = HITS + V_HITS WHERE PLAYER_ID = V_ID) COMMIT; END UPD_PLAYER_STAT; PROCEDURE ADD_PLAYER (V_ID IN NUMBER, V_LAST_NAME VARCHAR2, V_SALARY NUMBER) IS BEGIN INSERT INTO PLAYER(ID,LAST_NAME,SALARY) VALUES (V_ID, V_LAST_NAME, V_SALARY); UPD_PLAYER_STAT(V_ID,0.0); END ADD_PLAYER; END BB_PACK; Which statement will successfully assign $75,000,000 to the V_MAX_TEAM_SALARY variable from within a stand-alone procedure?
Correct Answer
C. BB_PACK.V_MAX_TEAM_SALARY := 75000000;
Explanation
The correct answer is "BB_PACK.V_MAX_TEAM_SALARY := 75000000;". This statement successfully assigns the value of $75,000,000 to the V_MAX_TEAM_SALARY variable within the BB_PACK package.
43.
Examine this code: CREATE OR REPLACE TRIGGER update_emp AFTER UPDATE ON emp BEGIN INSERT INTO audit_table (who, dated) VALUES (USER, SYSDATE); END; You issue an UPDATE command in the EMP table that results in changing 10 rows. How many rows are inserted into the AUDIT_TABLE ?
Correct Answer
A. 1
Explanation
The code provided is a trigger that is executed after an update on the emp table. It inserts a row into the audit_table with the current user and date. Since the trigger is executed after each update, regardless of the number of rows updated, only one row will be inserted into the audit_table.
44.
Examine this package
CREATE OR REPLACE PACKAGE discounts IS
G_ID NUMBER:=7839;
DISCOUNT_RATE NUMBER 0. 00;
PROCEDURE DISPLAY_PRICE (V_PRICE NUMBER);
END DISCOUNTS;
/
CREATE OR REPLACE PACKAGE BODY discounts
IS
PROCEDURE DISPLAY_PRICE (V_PRICE_NUMBER) 12
IS
BEGIN DBMS_OUTPUT.PUT_LINE(‘DISCOUNTED||2_4 (V_PRICE*NVL(DISCOUNT_RATE, 1)))
END DISPLAY_PRICE;
BEGIN DISCOUNT_RATE;=0. 10;
END DISCOUNTS;
/
Which statement is true?
Correct Answer
D. The value of DISCOUNT_RATE is set to 0. 10 when the package is invoked for first time in a session.
Explanation
The correct answer is that the value of DISCOUNT_RATE is set to 0.10 when the package is invoked for the first time in a session. This can be inferred from the package body where the BEGIN statement sets the value of DISCOUNT_RATE to 0.10.
45.
Examine this code:CREATE OR REPLACE TRIGGER secure_emp BEFORE LOGON ON employees BEGIN IF (TO_CHAR(SYSDATE, .DY.) IN ( .SAT., .SUN.)) OR (TO_CHAR(SYSDATE, .HH24:MI .) NOT BETWEEN .08:00 AND .18:00 )
THEN RAISE_APPLICATION_ERROR (-20500, .You may insert into the EMPLOYEES table only during business hours. .);
END IF;
END;
What type of trigger is it?
Correct Answer
E. This is an invalid trigger.
46.
Which table should you query to determine when your procedure was last compiled?
Correct Answer
C. USER_OBJECTS
Explanation
To determine when a procedure was last compiled, you should query the USER_OBJECTS table. This table contains information about all objects owned by the current user, including procedures. The LAST_DDL_TIME column in the USER_OBJECTS table indicates the timestamp of the last compile or modification of the object. Therefore, by querying this table and filtering for the specific procedure, you can retrieve the last compilation time of the procedure.
47.
Examine this code:CREATE OR REPLACE FUNCTION gen_email_name (p_first_name VARCHAR2, p_last_name VARCHAR2, p_id NUMBER) RETURN VARCHAR2 is v_email_name VARCHAR2(19);
BEGIN v_email_home := SUBSTR(p_first_name, 1, 1) || SUBSTR(p_last_name, 1, 7) || [email protected] .;
UPDATE employees SET email = v_email_name WHERE employee_id = p_id; RETURN v_email_name;
END;
You run this SELECT statement:
SELECT first_name, last_name gen_email_name(first_name, last_name, 108) EMAIL FROM employees; What occurs?
Correct Answer
B. The statement fails because functions called from SQL expressions cannot perform DML.
48.
What part of a database trigger determines the number of times the trigger body executes?
Correct Answer
A. Trigger type
Explanation
The trigger type determines the number of times the trigger body executes. Different trigger types have different behaviors when it comes to execution. For example, a trigger type of "before insert" will execute the trigger body once for each row being inserted, while a trigger type of "after update" will execute the trigger body once for each row being updated. Therefore, the trigger type is what determines the frequency of execution for the trigger body.
49.
What happens during the execute phase with dynamic SQL for INSERT, UPDATE, and DELETE operations?
Correct Answer
D. The SQL statement is run and the number of rows processed is returned.
Explanation
During the execute phase with dynamic SQL for INSERT, UPDATE, and DELETE operations, the SQL statement is executed and the number of rows processed is returned. This means that the actual operation of inserting, updating, or deleting data from the database is performed, and the result of this operation is the number of rows that were affected or processed.
50.
Given a function CALCTAX : CREATE OR REPLACE FUNCTION calc tax (sal NUMBER) RETURN NUMBER IS BEGIN RETURN (sal * 0.05); END;
If you want to run the above function from the SQL *Plus prompt, which statement is true?
Correct Answer
E. You need to create a SQL *Plus environment variable X and issue the command EXECUTE :X := CALCTAX(1000);
Explanation
To run the given function from the SQL *Plus prompt, you need to create a SQL *Plus environment variable X and then use the EXECUTE command to assign the result of the function to the variable X. The correct statement is EXECUTE :X := CALCTAX(1000);. This will execute the function CALCTAX with the argument 1000 and assign the result to the variable X.