Class ToCharFunction

All Implemented Interfaces:
ExpressionWithVariableParameters, NamedExpression, HasSQL, Typed

public final class ToCharFunction extends FunctionN
Emulates Oracle's TO_CHAR function.
  • Field Details

    • JULIAN_EPOCH

      public static final int JULIAN_EPOCH
      The beginning of the Julian calendar.
      See Also:
    • MONTHS

      public static final int MONTHS
      The month field.
      See Also:
    • SHORT_MONTHS

      public static final int SHORT_MONTHS
      The month field (short form).
      See Also:
    • WEEKDAYS

      public static final int WEEKDAYS
      The weekday field.
      See Also:
    • SHORT_WEEKDAYS

      public static final int SHORT_WEEKDAYS
      The weekday field (short form).
      See Also:
  • Constructor Details

  • Method Details

    • toChar

      public static String toChar(BigDecimal number, String format, String nlsParam)
      Emulates Oracle's TO_CHAR(number) function.
      TO_CHAR(number) function
      Input Output Closest DecimalFormat Equivalent
      , Grouping separator. ,
      . Decimal separator. .
      $ Leading dollar sign. $
      0 Leading or trailing zeroes. 0
      9 Digit. #
      B Blanks integer part of a fixed point number less than 1. #
      C ISO currency symbol. ¤
      D Local decimal separator. .
      EEEE Returns a value in scientific notation. E
      FM Returns values with no leading or trailing spaces. None.
      G Local grouping separator. ,
      L Local currency symbol. ¤
      MI Negative values get trailing minus sign, positive get trailing space. -
      PR Negative values get enclosing angle brackets, positive get spaces. None.
      RN Returns values in Roman numerals. None.
      S Returns values with leading/trailing +/- signs. None.
      TM Returns smallest number of characters possible. None.
      U Returns the dual currency symbol. None.
      V Returns a value multiplied by 10^n. None.
      X Hex value. None.
      See also TO_CHAR(number) and number format models in the Oracle documentation.
      Parameters:
      number - the number to format
      format - the format pattern to use (if any)
      nlsParam - the NLS parameter (if any)
      Returns:
      the formatted number
    • getDateNames

      public static String[] getDateNames(int names)
      Get the date (month / weekday / ...) names.
      Parameters:
      names - the field
      Returns:
      the names
    • clearNames

      public static void clearNames()
      Used for testing.
    • toCharDateTime

      public static String toCharDateTime(SessionLocal session, Value value, String format, String nlsParam)
      Emulates Oracle's TO_CHAR(datetime) function.
      TO_CHAR(datetime) function
      Input Output Closest SimpleDateFormat Equivalent
      - / , . ; : "text" Reproduced verbatim. 'text'
      A.D. AD B.C. BC Era designator, with or without periods. G
      A.M. AM P.M. PM AM/PM marker. a
      CC SCC Century. None.
      D Day of week. u
      DAY Name of day. EEEE
      DY Abbreviated day name. EEE
      DD Day of month. d
      DDD Day of year. D
      DL Long date format. EEEE, MMMM d, yyyy
      DS Short date format. MM/dd/yyyy
      E Abbreviated era name (Japanese, Chinese, Thai) None.
      EE Full era name (Japanese, Chinese, Thai) None.
      FF[1-9] Fractional seconds. S
      FM Returns values with no leading or trailing spaces. None.
      FX Requires exact matches between character data and format model. None.
      HH HH12 Hour in AM/PM (1-12). hh
      HH24 Hour in day (0-23). HH
      IW Week in year. w
      WW Week in year. w
      W Week in month. W
      IYYY IYY IY I Last 4/3/2/1 digit(s) of ISO year. yyyy yyy yy y
      RRRR RR Last 4/2 digits of year. yyyy yy
      Y,YYY Year with comma. None.
      YEAR SYEAR Year spelled out (S prefixes BC years with minus sign). None.
      YYYY SYYYY 4-digit year (S prefixes BC years with minus sign). yyyy
      YYY YY Y Last 3/2/1 digit(s) of year. yyy yy y
      J Julian day (number of days since January 1, 4712 BC). None.
      MI Minute in hour. mm
      MM Month in year. MM
      MON Abbreviated name of month. MMM
      MONTH Name of month, padded with spaces. MMMM
      RM Roman numeral month. None.
      Q Quarter of year. None.
      SS Seconds in minute. ss
      SSSSS Seconds in day. None.
      TS Short time format. h:mm:ss aa
      TZD Daylight savings time zone abbreviation. z
      TZR Time zone region information. zzzz
      X Local radix character. None.

      See also TO_CHAR(datetime) and datetime format models in the Oracle documentation.

      Parameters:
      session - the session
      value - the date-time value to format
      format - the format pattern to use (if any)
      nlsParam - the NLS parameter (if any)
      Returns:
      the formatted timestamp
    • getValue

      public Value getValue(SessionLocal session, Value v1, Value v2, Value v3)
      Description copied from class: FunctionN
      Returns the value of this function.
      Overrides:
      getValue in class FunctionN
      Parameters:
      session - the session
      v1 - the value of first argument, or null
      v2 - the value of second argument, or null
      v3 - the value of third argument, or null
      Returns:
      the resulting value
    • optimize

      public Expression optimize(SessionLocal session)
      Description copied from class: Expression
      Try to optimize the expression.
      Specified by:
      optimize in class Expression
      Parameters:
      session - the session
      Returns:
      the optimized expression
    • getName

      public String getName()
      Description copied from interface: NamedExpression
      Get the name.
      Returns:
      the name in uppercase