2011-09-22 41 views
1

我有一个信息,我认为是字符类型,因为我有以下(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不起作用?

+0

TO_NUMBER将尝试解析由'NLS_NUMERIC_CHARACTERS'设置定义的小数分隔符的数量 - 在会话中设置了什么NLS_NUMERIC_CHARACTERS? C.F. http://docs.oracle.com/cd/B28359_01/olap.111/b28126/dml_options072.htm –

回答

0

请尝试更改会话和形式掩盖

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

相关问题