我正在学习SQL。我在理解这个问题时遇到了问题。为什么TO_NUMBER函数接受第一个查询中的值并返回请求的格式,即使包含$
符号?但是,在第二个查询中它不接受该值。有人可以帮我解释一下这是如何工作的吗?
SQL> select to_number('$234.55','$99,999.00') from dual;
TO_NUMBER('$234.55','$99,999.00')
---------------------------------
234.55
SQL> select to_number('$234.55') from dual;
select to_number('$234.55') from dual
*
ERROR at line 1:
ORA-01722: invalid number
答案 0 :(得分:0)
因为" $"没有格式的to_number无法识别。 如果你想使用" $"需要写格式: SQL Fiddle:
select to_number('$234.55','$99,999.00') from dual;
select to_number('$234.55','$99,999.00') from dual;
select to_number('$234.55','$99,999.00') from dual;
select to_number('234.55') from dual;
select to_number('234.55') from dual;