SQL Oracle中字符到十进制/双精度的转换

SQL Oracle中字符到十进制/双精度的转换,sql,oracle,type-conversion,Sql,Oracle,Type Conversion,任何人都可以帮助我为下面的编码,如何将字符串转换为十进制/双精度 我在运行这些代码时收到了以下错误 在函数“DECFLOAT”的字符串参数中找到无效字符 我转换它的原因是为了将我需要的所有数字相加。 我想将“1.125”转换为双精度或十进制直接使用1.125,而不是else decimal('1.125'): 到_NUMBER(使用适当的格式掩码)会有帮助吗?例如: SQL> select to_number('1.125', '99999D999', 'nls_numeric_chara

任何人都可以帮助我为下面的编码,如何将字符串转换为十进制/双精度

我在运行这些代码时收到了以下错误


在函数“DECFLOAT”的字符串参数中找到无效字符

我转换它的原因是为了将我需要的所有数字相加。
我想将“1.125”转换为双精度或十进制

直接使用
1.125
,而不是
else decimal('1.125')


到_NUMBER
(使用适当的格式掩码)会有帮助吗?例如:

SQL> select to_number('1.125', '99999D999', 'nls_numeric_characters = .,') result from dual;

    RESULT
----------
     1,125

SQL>

您正在使用Oracle吗?@Aleksej yes Oracle“在函数“DECFLOAT”的字符串参数中发现无效字符似乎不是Oracle错误什么是“不工作”?从我发布的示例中可以看出,它是有效的。您可以编辑您的邮件并发布SQL*Plus会话吗?
(case when
(select max(IT.TRACE_QUANTITY) from BRDB.IMPORT_TRACE IT where IT.FILE_NO =  IS.FILE_NO and IT.TRACE_TYPE = 'CO' and IT.TRACE_UNIT = '40H') is null
then ''
else 1.125
end) as "40H"
SQL> select to_number('1.125', '99999D999', 'nls_numeric_characters = .,') result from dual;

    RESULT
----------
     1,125

SQL>