What is the string pattern to be provided in TO_NUMBER function in Adrenaline Dataflow

I want to convert a char value to number using TO_NUMBER function in Adrenaline Dataflow.

The KB is given as below. What is the string pattern to be provided in the function to avoid decimals ?

TO_NUMBER(STRING, STRING pattern)

Converts a string into a number. An optional pattern can be passed in. If the pattern doesn't include decimals the result will be LONG, otherwise the result will be a DOUBLE.

Tagged:

Best Answer

  • ArborRose
    ArborRose Coach
    Answer ✓

    Have you tried something like this (below)?

    TO_NUMBER('12345', 'FM999999999999999999999999999999999999999999999999999999999999')

    The FM is an optional prefix that indicates there are no leading or trailing spaces. The nines specify a placeholder for each digit, resulting in a LONG integer without decimal.

    ** Was this post helpful? Click Agree or Like below. **
    ** Did this solve your problem? Accept it as a solution! **

Answers

  • ArborRose
    ArborRose Coach
    Answer ✓

    Have you tried something like this (below)?

    TO_NUMBER('12345', 'FM999999999999999999999999999999999999999999999999999999999999')

    The FM is an optional prefix that indicates there are no leading or trailing spaces. The nines specify a placeholder for each digit, resulting in a LONG integer without decimal.

    ** Was this post helpful? Click Agree or Like below. **
    ** Did this solve your problem? Accept it as a solution! **

  • Raj_123
    Raj_123 Member

    Hi Arbor,

    I tried this string format. But still it didn't work. Attaching the screenshot for your reference.

    I tried all possible combinations. Still I am getting the decimals.

    FM999999999999999999999999999999999999999999999999999999999999

    999999999999999999999999999999999999999999999999999999999999

    999

  • Have you tried something like this: TO_NUMBER('12345', '#########')

    The pattern should match the format of your number. If the number varies in length, you might need a use a flexible pattern. Using 999 means exactly three digits. ######### means up to nine digits. If the strings have leading zeros, and you want to ignore them, TO_NUMBER("VARIANCE", '000000000').

    Assume variance contains numeric strings and you want ot convert to numbers without decimals. Your SQL might be something like

    SELECT
    TO_NUMBER(TRIM(VARIANCE), '#########') AS number_value
    FROM
    your_table

    Also check to make sure there are no NULL values or non-numeric strings.

    ** Was this post helpful? Click Agree or Like below. **
    ** Did this solve your problem? Accept it as a solution! **