Prog 113 Answer 2nd Quarter
Prog 113 Answer 2nd Quarter
(2nd Quarter)
You want to display the department name the same with the location of the Purchasing department.
Answer: SELECT department_name from departments where location_id = (SELECT location_id from
departments where department_name = 'Purchasing')
You want to display all records in the database whose salary is above the salary of Alexander Hunold.
Answer: SELECT * from employees WHERE salary < (SELECT salary FROM employees WHERE
first_name = 'Alexander' AND last_name = 'Hunold')
You want to display all employee id, name, hired date and salary who are hired after employee 104 was
hired.
Answer: SELECT employee_id, last_name, hire_date, salary FROM employees WHERE
TO_NUMBER(TO_CHAR(hire_date, 'YYYY')) >
(SELECT TO_NUMBER(TO_CHAR(hire_date, 'YYYY')) FROM employees WHERE employee_id = 104)
Actions are being performed when error occurs during PL/SQL execution in the
Answer: EXCEPTION
You want to display the name, salary and tax of employee #150. Which of the PL/SQL will execute
successfully? Note tax is computed as 2% of the salary.
Answer: DECLARE
v_first_name VARCHAR2(50);
v_last_name VARCHAR2(50);
v_salary INTEGER(20);
v_tax INTEGER(10);
BEGIN
SELECT first_name, last_name, salary, salary * 0.02 INTO v_first_name, v_last_name, v_salary, v_tax
FROM employees WHERE employee_id = 150;
DBMS_OUTPUT.PUT_LINE('Firstname : '|| v_first_name);
DBMS_OUTPUT.PUT_LINE('Lastname : '|| v_last_name);
DBMS_OUTPUT.PUT_LINE('Salary : '|| v_salary);
DBMS_OUTPUT.PUT_LINE('Tax : '|| v_tax);
END;
Which of the following PL/SQL that will display the total number employees whose salary is 10000 and
above?
Answer: DECLARE
v_salary employees.salary%TYPE := 10000;
BEGIN
SELECT COUNT(*) INTO v_salary FROM employees WHERE salary >= v_salary;
DBMS_OUTPUT.PUT_LINE(v_salary);
END;
This is a type of cursor which is created and managed internally by the Oracle server to process SQL
statements
Answer: Implicit
You have been tasked to update the database by creating a PL/SQL to increase the salary of all IT
Programmer employees by twice of their existing salary. Which of the following will execute
successfully?
Answer: DECLARE
v_job_id employees.job_id%TYPE := 'IT_PROG';
BEGIN
UPDATE employees SET salary = salary * 2 WHERE job_id = v_job_id;
END;
You have been tasked to update the database by creating a PL/SQL to increase the salary of all IT
Programmer employees by 50% of their existing salary.
Which of the following will execute successfully?
Answer: DECLARE
v_job_id employees.job_id%TYPE := 'IT_PROG';
BEGIN
UPDATE employees SET salary = salary *0.50 WHERE job_id = v_job_id;
END;
You want to know the total number of employees whose firstname starts with letter D.
Which of the folllowing PLS/SQL executes successfully?
Answer: DECLARE
v_first_name employees.first_name%TYPE := 'D%';
BEGIN
SELECT COUNT(*) INTO v_first_name FROM employees WHERE first_name LIKE v_first_name;
DBMS_OUTPUT.PUT_LINE(v_first_name);
END;
You can use this procedure to issue user-defined error messages from stored subprograms.
Answer: RAISE_APPLICATION_ERROR
You can trap any error by including a corresponding handler within the exception-handling section of the
PL/SQL block.
Answer: True
What is the exception name when single row SELECT returned no data.
Answer: NO_DATA_FOUND
What is the error trapping function that returns the numeric value of the error code?
Answer: SQLCODE
Evaluate the following PL/SQL. At what line number is the error of the PL/SQL?
DECLARE
v_deptno NUMBER := 800;
e_invalid EXCEPTION;
BEGIN
DELETE FROM departments
WHERE department_id = v_deptno;
IF SQL % NOT_FOUND THEN
RAISE e_invalid;
END IF;
COMMIT;
EXCEPTION
WHEN e_invalid THEN
DBMS_OUTPUT.PUT_LINE('No such department id.');
END;
Answer: 7
This is a type of cursor which is created and managed internally by the Oracle server to process SQL
statements
Answer: Implicit
PL/SQL stands for
Answer: Procedural Language extension to SQL
You can trap any error by including a corresponding handler within the exception-handling section of the
PL/SQL block.
Answer: True
You have been tasked to update the database by creating a PL/SQL to increase the salary of all IT
Programmer employees by 100% of their existing salary. Which of the following will execute
successfully?
Answer: DECLARE
v_job_id employees.job_id%TYPE := 'IT_PROG';
BEGIN
UPDATE employees SET salary = salary * 2 WHERE job_id = v_job_id;
END;
What is the error trapping function that returns the numeric value of the error code?
Answer: SQLCODE
What is the exception name when single row SELECT returned no data.
Answer: NO_DATA_FOUND
Which of the will display the Employee ID and number of years in service with employee ID 150?
Answer: DECLARE
v_salaryemployees.salary%TYPE := 10000;
v_employee_idemployees.employee_id%TYPE := 150;
v_years INTEGER(10);
BEGIN
SELECT employee_id, ROUND((SYSDATE - hire_date) /365,0) INTO v_employee_id, v_years FROM
employees WHERE employee_id = v_employee_id ;
DBMS_OUTPUT.PUT_LINE('Employee ID:' || v_employee_id);
DBMS_OUTPUT.PUT_LINE('Number of years : ' || v_years);
END;
Actions are being performed when error occurs during PL/SQL execution in the
Answer: EXCEPTION
You can use this procedure to issue user-defined error messages from stored subprograms.
Answer: RAISE_APPLICATION_ERROR
Which of the following command is used to create a stand-alone procedure that is stored in the Oracle
database?
Answer: CREATE PROCEDURE
Which of the folllowing does NOT describes subprogram?
i. Compiled only once
ii. Stored in the database
iii. Do not return values
iv. Can take parameters
v. Unnamed PL/SQL blocks
Answer: iii & v
Evaluate the following PL/SQL. Which of the following will line creates an error?
CREATE OR REPLACE PROCEDURE query_emp
(
p_department_id IN employees.department_id%TYPE,
p_name OUT employees.last_name%TYPE,
p_salary OUT employees.salary%TYPE
)
IS
BEGIN
SELECT last_name, salary, department_id INTO p_name, p_salary, p_department_id
FROM employees
WHERE salary >= p_salary AND department_id = p_department_id ;
END query_emp;
Answer: Line 3
These are local variables declared in the parameter list of a subprogram specification.
Answer: Formal parameter
Given the answer in item __________, which of the folllowing stored procedure will display the
employee id and salary of Steven King?
Answer: DECLARE
v_employee_id employees.employee_id%TYPE;
v_emp_sal employees.salary%TYPE;
BEGIN
query_emp('King', 'Steven', v_employee_id, v_emp_sal); DBMS_OUTPUT.PUT_LINE('Employee ID ' ||
v_employee_id ||' earns '|| to_char(v_emp_sal, '$999,999.00'));
END;
Which of the following stored procedure to create a procedure to that will be used to display the
employee id and salary of Steven King?
Answer: CREATE OR REPLACE PROCEDURE query_emp
(p_last_name IN employees.last_name%TYPE,
p_first_name IN employees.first_name%TYPE,
p_employee_id OUT employees.employee_id%TYPE,
p_salary OUT employees.salary%TYPE) IS
BEGIN
SELECT employee_id, salary INTO p_employee_id, p_salary
FROM employees
WHERE last_name = p_last_name AND first_name = p_first_name;
END query_emp;
Restrictive, specifies a RETURN type, associates only with type-compatible queries are description of a
________________.
Answer: Strong REF CURSOR
Which of the following is INCORRECT about the guidelines for cursor design?
Answer: Use column aliases in cursors for calculated columns fetched into records declared with
%COLUMNTYPE.
This is a subset of an existing data type that may place a constraint on its base type.
Answer: Subtype
PROG-113A / ► Week 18: Designing PL/SQL / ► Short Quiz 14
Use column aliases in cursors for calculated columns fetched into records declared with %COLUMNTYPE.
Answer: False
You have been tasked to update the database by creating a PL/SQL to increase the salary of all IT
Programmer employees by 100% of their existing salary. Which of the following will execute
successfully?
Answer: DECLARE
v_job_id employees.job_id%TYPE := 'IT_PROG';
BEGIN
UPDATE employees SET salary = salary * 2 WHERE job_id = v_job_id;
END;
Given the answer in item __________, which of the folllowing stored procedure will display the
employee id and salary of Steven King?
Answer: DECLARE
v_employee_id employees.employee_id%TYPE;
v_emp_sal employees.salary%TYPE;
BEGIN
query_emp('King', 'Steven', v_employee_id, v_emp_sal);
DBMS_OUTPUT.PUT_LINE('Employee ID ' || v_employee_id ||' earns '|| to_char(v_emp_sal,
'$999,999.00'));
END;
Evaluate the following PL/SQL. Which of the following will line creates an error?
CREATE OR REPLACE PROCEDURE query_emp
(
p_department_id IN employees.department_id%TYPE,
p_name OUT employees.last_name%TYPE,
p_salary OUT employees.salary%TYPE
)
IS
BEGIN
SELECT last_name, salary, department_id INTO p_name, p_salary, p_department_id
FROM employees
WHERE salary >= p_salary AND department_id = p_department_id ;
END query_emp;
Answer: Line 3
Which of the following command is used to create a stand-alone procedure that is stored in the Oracle
database?
Answer: CREATE PROCEDURE
You want to display all the records of employee the same with the salary employee number 103.
Answer: SELECT * FROM employees WHERE salary = (SELECT salary from employees where
employee_id= 103)
Which of the following stored procedure to create a procedure to that will be used to display the
employee id and salary of Steven King?
Answer: CREATE OR REPLACE PROCEDURE query_emp
(p_last_name IN employees.last_name%TYPE,
p_first_name IN employees.first_name%TYPE,
p_employee_id OUT employees.employee_id%TYPE,
p_salary OUT employees.salary%TYPE) IS
BEGIN
SELECT employee_id, salary INTO p_employee_id, p_salary
FROM employees
WHERE last_name = p_last_name AND first_name = p_first_name;
END query_emp;
Restrictive, specifies a RETURN type, associates only with type-compatible queries are description of a
________________.
Answer: Strong REF CURSOR
These are local variables declared in the parameter list of a subprogram specification.
Answer: Formal parameter
You want to know the total number of employees whose firstname starts with letter D.
Which of the folllowing PLS/SQL executes successfully?
Answer: DECLARE
v_first_name employees.first_name%TYPE := 'D%';
BEGIN
SELECT COUNT(*) INTO v_first_name FROM employees WHERE first_name LIKE v_first_name;
DBMS_OUTPUT.PUT_LINE(v_first_name);
END;
What is the error trapping function that returns the numeric value of the error code?
Answer: SQLCODE
You want to display the name, salary and tax of employee #150. Which of the PL/SQL will execute
successfully? Note tax is computed as 2% of the salary.
Answer: DECLARE
v_first_name VARCHAR2(50);
v_last_name VARCHAR2(50);
v_salary INTEGER(20);
v_tax INTEGER(10);
BEGIN
SELECT first_name, last_name, salary, salary * 0.02 INTO v_first_name, v_last_name, v_salary, v_tax
FROM employees WHERE employee_id = 150;
DBMS_OUTPUT.PUT_LINE('Firstname : '|| v_first_name);
DBMS_OUTPUT.PUT_LINE('Lastname : '|| v_last_name);
DBMS_OUTPUT.PUT_LINE('Salary : '|| v_salary);
DBMS_OUTPUT.PUT_LINE('Tax : '|| v_tax);
END;
You can trap any error by including a corresponding handler within the exception-handling section of the
PL/SQL block.
Answer: True
Which of the following describes weak REF CURSOR?
Answer: Associates with any query
Given the answer in item __________, which of the folllowing stored procedure will display the
employee id and salary of Steven King?
Answer: DECLARE
v_employee_id employees.employee_id%TYPE;
v_emp_sal employees.salary%TYPE;
BEGIN
query_emp('King', 'Steven', v_employee_id, v_emp_sal);
DBMS_OUTPUT.PUT_LINE('Employee ID ' || v_employee_id ||' earns '|| to_char(v_emp_sal,
'$999,999.00'));
END;
You have been tasked to update the database by creating a PL/SQL to increase the salary of all IT
Programmer employees by 50% of their existing salary.
Which of the following will execute successfully?
Answer: DECLARE
v_job_id employees.job_id%TYPE := 'IT_PROG';
BEGIN
UPDATE employees SET salary = salary *0.50 WHERE job_id = v_job_id;
END;
Actions are being performed when error occurs during PL/SQL execution in the
Answer: EXCEPTION
Which of the following command is used to create a stand-alone procedure that is stored in the Oracle
database?
Answer: CREATE PROCEDURE
You want to display all records in the database whose salary is above the salary of Alexander Hunold.
Answer: SELECT * from employees WHERE salary < (SELECT salary FROM employees WHERE
first_name = 'Alexander' AND last_name = 'Hunold')
Evaluate the following PL/SQL. At what line number is the error of the PL/SQL?
DECLARE
v_deptno NUMBER := 800;
e_invalid EXCEPTION;
BEGIN
DELETE FROM departments
WHERE department_id = v_deptno;
IF SQL % NOT_FOUND THEN
RAISE e_invalid;
END IF;
COMMIT;
EXCEPTION
WHEN e_invalid THEN
DBMS_OUTPUT.PUT_LINE('No such department id.');
END;
Answer: 7
What is the error trapping function that returns the numeric value of the error code?
Answer: SQLCODE
Fetch into a record when fetching from a cursor.
Answer: True