欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

关于to_number函数中第二个参数解决方案

更新时间: 2014-01-05 02:11:59 责任编辑: Author_N1

 

关于TO_NUMBER函数中第二个参数
DECLARE
 a NUMBER;
BEGIN
  a := TO_NUMBER('$123,456.78','L999G999D99');
END;

参数2中的L,G,D分别是指定返回值中区域货币符号的位置,返回值中分组符的位置,返回值中小数点的位置

像这种'$123,456.78'字符串不指定格式确实会报错,那如果我传进的字符参数是未知的,我第二个参数应该怎么设置?
然后G的意思不是指返回值中分组符的位置吗,实际转换后的值是没有分组符的,为什么?

--参考方法--
试了一下,在10g里
SELECT TO_NUMBER('123,456.78','999999D99') from dual;
即使不指定分组符的位置,一样可以的到正确的结果
--参考方法--

--直接自动转换G
SELECT 
TO_NUMBER('-$321,909.10', 'L99999999999D99', 'NLS_CURRENCY= ''$''') "Amount"
FROM DUAL;


Format Models详情请看:
http://docs.oracle.com/cd/E11882_01/server.112/e26088/sql_elements004.htm#SQLRF51074
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:11:59
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/6860/
本文WWW.DOC100.NET DOC100.NET版权所有。