PL/SQL Advanced Interview Questions
- Which of the following statements is true about implicit cursors?
- Implicit cursors are used for SQL statements that are not named.
- Developers should use implicit cursors with great care.
- Implicit cursors are used in cursor for loops to handle data processing.
- Implicit cursors are no longer a feature in Oracle.
- Which of the following is not a feature of a cursor FOR loop?
- Record type declaration.
- Opening and parsing of SQL statements.
- Fetches records from cursor.
- Requires exit condition to be defined.
- A developer would like to use referential datatype
declaration on a variable. The variable name is EMPLOYEE_LASTNAME, and
the corresponding table and column is EMPLOYEE, and LNAME, respectively.
How would the developer define this variable using referential
datatypes?
- Use employee.lname%type.
- Use employee.lname%rowtype.
- Look up datatype for EMPLOYEE column on LASTNAME table and use that.
- Declare it to be type LONG.
- Which three of the following are implicit cursor attributes?
- %found
- %too_many_rows
- %notfound
- %rowcount
- %rowtype
- If left out, which of the following would cause an infinite loop to occur in a simple loop?
- LOOP
- END LOOP
- IF-THEN
- EXIT
- Which line in the following statement will produce an error?
- cursor action_cursor is
- select name, rate, action
- into action_record
- from action_table;
- There are no errors in this statement.
- The command used to open a CURSOR FOR loop is
- open
- fetch
- parse
- None, cursor for loops handle cursor opening implicitly.
- What happens when rows are found using a FETCH statement
- It causes the cursor to close
- It causes the cursor to open
- It loads the current row values into variables
- It creates the variables to hold the current row values
- Read the following code:
CREATE OR REPLACE PROCEDURE find_cpt (v_movie_id {Argument Mode} NUMBER, v_cost_per_ticket {argument mode} NUMBER) IS BEGIN IF v_cost_per_ticket > 8.5 THEN SELECT cost_per_ticket INTO v_cost_per_ticket FROM gross_receipt WHERE movie_id = v_movie_id; END IF; END;
- IN
- OUT
- RETURN
- IN OUT
- Read the following code:
CREATE OR REPLACE TRIGGER update_show_gross {trigger information} BEGIN {additional code} END;
- WHEN (new.cost_per_ticket > 3.75)
- WHEN (:new.cost_per_ticket > 3.75
- WHERE (new.cost_per_ticket > 3.75)
- WHERE (:new.cost_per_ticket > 3.75)
- What is the maximum number of handlers processed before the PL/SQL block is exited when an exception occurs?
- Only one
- All that apply
- All referenced
- None
- For which trigger timing can you reference the NEW and OLD qualifiers?
- Statement and Row
- Statement only
- Row only
- Oracle Forms trigger
- Read the following code:
CREATE OR REPLACE FUNCTION get_budget(v_studio_id IN NUMBER) RETURN number IS v_yearly_budget NUMBER; BEGIN SELECT yearly_budget INTO v_yearly_budget FROM studio WHERE id = v_studio_id; RETURN v_yearly_budget; END;
- VARIABLE g_yearly_budget NUMBER
EXECUTE g_yearly_budget := GET_BUDGET(11); - VARIABLE g_yearly_budget NUMBER
EXECUTE :g_yearly_budget := GET_BUDGET(11); - VARIABLE :g_yearly_budget NUMBER
EXECUTE :g_yearly_budget := GET_BUDGET(11); - VARIABLE g_yearly_budget NUMBER
:g_yearly_budget := GET_BUDGET(11);
- VARIABLE g_yearly_budget NUMBER
-
CREATE OR REPLACE PROCEDURE update_theater (v_name IN VARCHAR v_theater_id IN NUMBER) IS BEGIN UPDATE theater SET name = v_name WHERE id = v_theater_id; END update_theater;
ORA-000: Unique constraint(SCOTT.THEATER_NAME_UK) violated.
- An user defined exception must be declared and associated with the error code and handled in the EXCEPTION section.
- Handle the error in EXCEPTION section by referencing the error code directly.
- Handle the error in the EXCEPTION section by referencing the UNIQUE_ERROR predefined exception.
- Check for success by checking the value of SQL%FOUND immediately after the UPDATE statement.
- Read the following code:
CREATE OR REPLACE PROCEDURE calculate_budget IS v_budget studio.yearly_budget%TYPE; BEGIN v_budget := get_budget(11); IF v_budget < 30000 THEN set_budget(11,30000000); END IF; END;
- The GET_BUDGET function will be marked invalid and must be recompiled before the next execution.
- The SET_BUDGET function will be marked invalid and must be recompiled before the next execution.
- Only the CALCULATE_BUDGET procedure needs to be recompiled.
- All three procedures are marked invalid and must be recompiled.
- Which procedure can be used to create a customized error message?
- RAISE_ERROR
- SQLERRM
- RAISE_APPLICATION_ERROR
- RAISE_SERVER_ERROR
- The CHECK_THEATER trigger of the THEATER table has been disabled. Which command can you issue to enable this trigger?
- ALTER TRIGGER check_theater ENABLE;
- ENABLE TRIGGER check_theater;
- ALTER TABLE check_theater ENABLE check_theater;
- ENABLE check_theater;
- Examine this database trigger
CREATE OR REPLACE TRIGGER prevent_gross_modification {additional trigger information} BEGIN IF TO_CHAR(sysdate, DY) = MON THEN RAISE_APPLICATION_ERROR(-20000,Gross receipts cannot be deleted on Monday); END IF; END;
- BEFORE DELETE ON gross_receipt
- AFTER DELETE ON gross_receipt
- BEFORE (gross_receipt DELETE)
- FOR EACH ROW DELETED FROM gross_receipt
- Examine this function:
CREATE OR REPLACE FUNCTION set_budget (v_studio_id IN NUMBER, v_new_budget IN NUMBER) IS BEGIN UPDATE studio SET yearly_budget = v_new_budget WHERE id = v_studio_id; IF SQL%FOUND THEN RETURN TRUEl; ELSE RETURN FALSE; END IF; COMMIT; END;
- Add RETURN right before the IS keyword.
- Add RETURN number right before the IS keyword.
- Add RETURN boolean right after the IS keyword.
- Add RETURN boolean right before the IS keyword.
- Under which circumstance must you recompile the package body after recompiling the package specification?
- Altering the argument list of one of the package constructs
- Any change made to one of the package constructs
- Any SQL statement change made to one of the package constructs
- Removing a local variable from the DECLARE section of one of the package constructs
- Procedure and Functions are explicitly executed. This is different from a database trigger. When is a database trigger executed?
- When the transaction is committed
- During the data manipulation statement
- When an Oracle supplied package references the trigger
- During a data manipulation statement and when the transaction is committed
- Which Oracle supplied package can you use to output values
and messages from database triggers, stored procedures and functions
within SQL*Plus?
- DBMS_DISPLAY
- DBMS_OUTPUT
- DBMS_LIST
- DBMS_DESCRIBE
- What occurs if a procedure or function terminates with failure without being handled?
- Any DML statements issued by the construct are still pending and can be committed or rolled back.
- Any DML statements issued by the construct are committed
- Unless a GOTO statement is used to continue processing within the BEGIN section, the construct terminates.
- The construct rolls back any DML statements issued and returns the unhandled exception to the calling environment.
- Examine this code
BEGIN theater_pck.v_total_seats_sold_overall := theater_pck.get_total_for_year; END;
- Both the V_TOTAL_SEATS_SOLD_OVERALL variable and the GET_TOTAL_FOR_YEAR function must exist only in the body of the THEATER_PCK package.
- Only the GET_TOTAL_FOR_YEAR variable must exist in the specification of the THEATER_PCK package.
- Only the V_TOTAL_SEATS_SOLD_OVERALL variable must exist in the specification of the THEATER_PCK package.
- Both the V_TOTAL_SEATS_SOLD_OVERALL variable and the GET_TOTAL_FOR_YEAR function must exist in the specification of the THEATER_PCK package.
- A stored function must return a value based on conditions
that are determined at runtime. Therefore, the SELECT statement cannot
be hard-coded and must be created dynamically when the function is
executed. Which Oracle supplied package will enable this feature?
- DBMS_DDL
- DBMS_DML
- DBMS_SYN
- DBMS_SQL
No comments:
Post a Comment