尝试将char转换为数字时出错

时间:2011-09-22 17:40:29

标签: oracle10g

我有一个信息,我假设它是char类型,因为我有以下内容(dbms_output.put_line是一个类似“print”的函数,返回值是在>之后):

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不起作用?

1 个答案:

答案 0 :(得分:0)

请尝试更改会话和格式掩码

alter session set NLS_NUMERIC_CHARACTERS=".,"

dbms_output.put_line( to_number(crate_record.column_1,999999999.99) );

如果你想为整个应用程序使用相同的十进制和组分隔符,那么在DB中更改NLS_NUMERIC_CHARACTERS,以下链接可能会有帮助

https://forums.oracle.com/forums/thread.jspa?threadID=899739