错误尝试将字符转换为数字
问题描述:
我有一个信息,我认为是字符类型,因为我有以下(dbms_output.put_line是一个函数像“打印”和返回的值是 - >):错误尝试将字符转换为数字
dbms_output.put_line(table_record.column_1); --> 0.6
dbms_output.put_line(UPPER(table_record.column_1)); --> 0.6
dbms_output.put_line(LOWER(table_record.column_1)); --> 0.6
但我不想那样。我想将此列转换为FLOAT类型。当我尝试:
dbms_output.put_line(to_number(crate_record.column_1));
我有ORA-06502:PL/SQL:数字或值错误:字符到数字转换错误。
为什么to_number不起作用?
答
请尝试更改会话和形式掩盖
alter session set NLS_NUMERIC_CHARACTERS=".,"
dbms_output.put_line(to_number(crate_record.column_1,999999999.99));
,如果你想为整个应用程序相同的十进制和组分隔符号然后更改NLS_NUMERIC_CHARACTERS在DB使下述链接可能会有所帮助
https://forums.oracle.com/forums/thread.jspa?threadID=899739
TO_NUMBER将尝试解析由'NLS_NUMERIC_CHARACTERS'设置定义的小数分隔符的数量 - 在会话中设置了什么NLS_NUMERIC_CHARACTERS? C.F. http://docs.oracle.com/cd/B28359_01/olap.111/b28126/dml_options072.htm –