Intermediate

Q:

20-11.

The following function uses the MOD function to determine whether a number is odd:

CREATE OR REPLACE FUNCTION is_odd (i_val IN NUMBER)
   RETURN BOOLEAN
IS
BEGIN
   RETURN MOD (i_val, 2) = 1;
END;

Q:

20-12.

(d). The SQLERRM function returns the error code for a passed error number.

Q:

20-13.

You can print a general error message (or save it to a log) by using SQLCODE and SQLERRM in the WHEN OTHERS exception:

CREATE OR REPLACE PROCEDURE code_test
IS
   dummy_val VARCHAR2 (5);
BEGIN
   dummy_val := 'This string is way too big!';
EXCEPTION
   WHEN OTHERS
   THEN
      DBMS_OUTPUT.put_line (
         'Error Code (' || TO_CHAR (SQLCODE) || '):' || SQLERRM
      );
END;

Running this procedure in SQL*Plus generates the following output:

SQL> EXEC code_test
Error Code (-6502):ORA-06502: PL/SQL: numeric or value error

PL/SQL procedure successfully completed.

SQL>

Q:

20-14.

This table shows the formats required to produce the desired dates:

Desired Date

Required Format

May 21, 1994

‘Month dd, yyyy’

05/21/94

‘MM/DD/YY’

The 21st of May, 1994

‘“The “DDth” of “Mon”, “YYYY’

Quarter 2

‘“Quarter “Q’

Week 21

‘“Week “WW’

Week 3 in Month 05

‘“Week “W” in Month “MM’

The 3rd week in May

‘“The “Wth” week in “Month"’

Q:

20-15.

You can use the NVL function to rewrite the code snippet in one line:

name_list ( NVL(name_list.LAST,0) + 1) := next_name ;

Q:

20-16.

The following function uses the TO_NUMBER built-in function to determine whether the passed string is a number:

CREATE OR REPLACE FUNCTION is_number (i_val IN VARCHAR2) RETURN BOOLEAN IS tmp NUMBER; BEGIN ...

Get Oracle PL/SQL Programming: A Developer's Workbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.