Class ToCharFunction

    • Field Detail

      • JULIAN_EPOCH

        public static final int JULIAN_EPOCH
        The beginning of the Julian calendar.
        See Also:
        Constant Field Values
      • ROMAN_VALUES

        private static final int[] ROMAN_VALUES
      • ROMAN_NUMERALS

        private static final java.lang.String[] ROMAN_NUMERALS
      • SHORT_MONTHS

        public static final int SHORT_MONTHS
        The month field (short form).
        See Also:
        Constant Field Values
      • SHORT_WEEKDAYS

        public static final int SHORT_WEEKDAYS
        The weekday field (short form).
        See Also:
        Constant Field Values
      • NAMES

        private static volatile java.lang.String[][] NAMES
    • Method Detail

      • toChar

        public static java.lang.String toChar​(java.math.BigDecimal number,
                                              java.lang.String format,
                                              java.lang.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
      • getCurrency

        private static java.util.Currency getCurrency()
      • zeroesAfterDecimalSeparator

        private static java.lang.String zeroesAfterDecimalSeparator​(java.math.BigDecimal number)
      • addSign

        private static void addSign​(java.lang.StringBuilder output,
                                    int signum,
                                    boolean leadingSign,
                                    boolean trailingSign,
                                    boolean trailingMinus,
                                    boolean angleBrackets,
                                    boolean fillMode)
      • findDecimalSeparator

        private static int findDecimalSeparator​(java.lang.String format)
      • calculateScale

        private static int calculateScale​(java.lang.String format,
                                          int separator)
      • toRomanNumeral

        private static java.lang.String toRomanNumeral​(int number)
      • toHex

        private static java.lang.String toHex​(java.math.BigDecimal number,
                                              java.lang.String format)
      • getDateNames

        public static java.lang.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.
      • getTimeZone

        private static java.lang.String getTimeZone​(SessionLocal session,
                                                    Value value,
                                                    boolean tzd)
        Returns time zone display name or ID for the specified date-time value.
        Parameters:
        session - the session
        value - value
        tzd - if true return TZD (time zone region with Daylight Saving Time information included), if false return TZR (time zone region)
        Returns:
        time zone display name or ID
      • toCharDateTime

        public static java.lang.String toCharDateTime​(SessionLocal session,
                                                      Value value,
                                                      java.lang.String format,
                                                      java.lang.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
      • containsAt

        private static ToCharFunction.Capitalization containsAt​(java.lang.String s,
                                                                int index,
                                                                java.lang.String... substrings)
        Returns a capitalization strategy if the specified string contains any of the specified substrings at the specified index. The capitalization strategy indicates the casing of the substring that was found. If none of the specified substrings are found, this method returns null .
        Parameters:
        s - the string to check
        index - the index to check at
        substrings - the substrings to check for within the string
        Returns:
        a capitalization strategy if the specified string contains any of the specified substrings at the specified index, null otherwise
      • 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 java.lang.String getName()
        Description copied from interface: NamedExpression
        Get the name.
        Returns:
        the name in uppercase