为什么oracle说缺少右括号

时间:2012-10-10 10:48:40

标签: sql oracle

在以下查询中,我尝试将十进制标记更改为comma

SELECT to_number('12.5678', '99D9999', NLS_NUMERIC_CHARACTERS =', ')  FROM dual;

当我在sqlDeveloper中执行此查询时,oracle说错过了正确的paranthesis。 请注意我有语言环境(DE,Gemany)。

可能是什么原因?

感谢您的任何建议

2 个答案:

答案 0 :(得分:5)

在SQL中 - 与PL / SQL相反 - 第三个参数是字符串:

SELECT to_number('12.5678', '99D9999', 'NLS_NUMERIC_CHARACTERS ='', ''')
FROM dual;

另见:
http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions191.htm

答案 1 :(得分:1)

NLS_NUMERIC_CHARACTERS =', '应作为varchar

传递
select TO_NUMBER('$94 567,00', 'L999G999D00', 'NLS_NUMERIC_CHARACTERS ='', ''') FROM dual; 

http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions211.htm#SQLRF06140