我正在使用Oracle 10g并具有数据库列Q1的数据类型为varchar2的数据库。该列主要保存float和int值。将字符串转换为oracle中的格式编号
我想运行一个查询,将获取值,但具有标准美国货币格式的值格式。例如,如果值为3020,则查询将返回3,020.00。
我试过以下,但都没有工作。
SELECT TO_CHAR(Q1, '9,999.99') FROM TABLE1;
ORA-01722: invalid number
01722. 00000 - "invalid number"
SELECT TO_CHAR(TO_NUMBER(Q1), '9,999.99') FROM TABLE1;
ORA-01722: invalid number
01722. 00000 - "invalid number"
我也尝试使用实际值而不是列名称,第一个示例工作。 : -/
SELECT TO_CHAR('1234', '9,999.99') FROM TABLE1; //returns 1,234.00
在此步骤之后,我回去,并尝试添加格式掩码TO_NUMBER(): SELECT TO_CHAR(TO_NUMBER(Q1, '9,999.99'), '9,999.99')FROM TABLE1;
ORA-01722: invalid number
01722. 00000 - "invalid number"
它还没有工作。
有人可以解释为什么这不适合我的专栏吗?最初虽然是因为列的数据类型不是数字,浮点数或整数,但即使在转换为数字后,我仍然得到相同的错误。任何帮助将不胜感激。