Name

INITCAP

Synopsis

The INITCAP function reformats the case of the string argument, setting the first letter of each word to uppercase and the remainder of the letters to lowercase. A word is a set of characters separated by a space or nonalphanumeric character (such as # or _ ). The specification of INITCAP is:

FUNCTION INITCAP (string_in IN VARCHAR2) RETURN VARCHAR2

Here are some examples of the impact of INITCAP on your strings:

  • Shift all lowercase to mixed case:

    INITCAP ('this is lower') --> 'This Is Lower'
  • Shift all uppercase to mixed case:

    INITCAP ('BIG>AND^TALL') --> 'Big>And^Tall'
  • Shift a confusing blend of cases to consistent initcap format:

    INITCAP ('wHatISthis_MESS?') --> 'Whatisthis_Mess?'
  • Create Visual Basic-style variable names (I use REPLACE, explained later, to strip out the embedded spaces):

    REPLACE (INITCAP ('ALMOST_UNREADABLE_VAR_NAME'), '_', NULL) 
       --> 'AlmostUnreadableVarName'

When and why would you use INITCAP? Many Oracle shops like to store all character string data, such as names and addresses, in uppercase for consistency. This practice makes it easier to search for records that match certain criteria.

The problem with storing all the data in uppercase is that, while it is a convenient “machine format,” it is not particularly readable or presentable. How easy is it to scan a page of information that looks like the following?

CUSTOMER TRACKING LIST - GENERATED ON 12-MAR-1994 LAST PAYMENT WEDNESDAY: PAUL JOHNSON, 123 MADISON AVE - $1200 LAST PAYMENT MONDAY: HARRY ...

Get Oracle PL/SQL Programming, Third Edition 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.