Expert
Q: | |
20-21. | Use the FM (fill mode) format mask element to suppress padding and leading zeros. FM works like a toggle: the first occurrence in the format mask turns suppression on, the second turns it off, and so on. Here is an example: DECLARE
d DATE := TO_DATE ('01-MAY-1994', 'DD-MON-YYYY');
BEGIN
-- Normal output
DBMS_OUTPUT.put_line (TO_CHAR (d, 'Month DD, YYYY'));
-- Suppress padding and leading zeros
DBMS_OUTPUT.put_line (TO_CHAR (d, 'FMMonth DD, YYYY'));
-- Suppress padding but display leading zeros (FM is a toggle)
DBMS_OUTPUT.put_line (TO_CHAR (d, 'FMMonth FMDD, YYYY'));
END;
SQL> /
May 01, 1994
May 1, 1994
May 01, 1994
PL/SQL procedure successfully completed.
SQL> |
Q: | |
20-22. | You can use the FX (format exact) format mask element to require that a date have a specific format (i.e., that it use hyphens as delimiters); the TO_CHAR function raises an exception if the string is not in the required format. If the passed string doesn’t contain the correct literal characters (e.g., hypens, slashes), TO_DATE raises the exception: ORA-01861: literal does not match format string If the string doesn’t have the expected date format (e.g., two-digit year instead of four, one-digit month instead of two, MONTH format instead of MON), TO_DATE raises the exception: ORA-01862: the numeric value does not match the length of the format item Testing exact match for FXDD-MON-YYYY 21-MAY-1999 => Format Okay 01/MAY/1999 => ORA-01861: literal does not match format string 01-MAY-99 => ORA-01862: the numeric ... |