我有一个信息,我假设它是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不起作用?
答案 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