Oracle to_number函数参数

Mik*_*yev 4 oracle function

我在使用TO_NUMBER函数第二个和第三个参数时遇到问题.其中一个是否依赖另一个?nls_params参数如何工作?我无法理解查询的结果如何

SELECT TO_NUMBER('17.000,23', 
             '999G999D99', 
             'nls_numeric_characters='',.'' ')  
             REFORMATTED_NUMBER 
FROM   DUAL; 
Run Code Online (Sandbox Code Playgroud)

可以是17000.23.有人可以解释上述转换的过程.

PS上述查询来自Oracle数据库SQL专家证书准备手册.

Kev*_*ton 5

你告诉TO_NUMBER函数,,.nls_numeric_characters中的两个字符代表十进制和千位分隔符

G (thousands seperator) = .
D (decimal seperator)   = ,
Run Code Online (Sandbox Code Playgroud)

所以它看到这个数字是17000点二十三.

请参阅:http://download.oracle.com/docs/cd/B13789_01/olap.101/b10339/x_stddev022.htm#i78653