您的位置:首页技术开发数据库教程 → Oracle to_char 函数详解

Oracle to_char 函数详解

时间:2009/12/16 9:01:00来源:本站整理作者:我要评论(0)

to_char,函数功能,就是将数值型或者日期型转化为字符型。

  比如最简单的应用:

  Select TO_CHAR(1.0123) FROM DUAL

  Select TO_CHAR(123) FROM DUAL

  接下来再看看下面:

  SELEC TO_CHAR(0.123) FROM DUAL

  上面的结果 '.123' 在大多数情况下都不是我们想要的结果,我们想要的应该是 '0.123'。

  我们来看一下to_char函数的具体用法:

  TO_CHAR ( n [, fmt [, 'nlsparam']] )该函数将NUMBER类型的n按数值格式fmt转换成VARCHAR2类型的值。'nlsparams'指定由数值格式的元素返回的字符,包括:

  .小数点字符

  .组分隔符

  .本地钱币符号

  .国际钱币符号

  变元的形式为:

  'NLS_NUMERIC_CHARACTERS="dg" NLS_CURRENCY="tcxt" NLS_ISO_CURRENCY=territory'

  其中d为小数点字符,g为组分隔符。

  例 :TO_CHAR (17145,'L099G999','NLS_NUMERIC_CHARACTERS=".," NLS_CURRENCY="NUD"')=NUD017,145

  通过上面的了解,再查看fmt的一些格式,我们可以用以下表达式得到'0.123'的值:

  Select TO_CHAR(0.123,'0.999') FROM DUAL

  Select TO_CHAR(100.12,'0.999') FROM DUAL

  Select TO_CHAR(1.12,'0.999') FROM DUAL

  ' 0.123'是出来了,可是前面又多了一个空格。

  对于 100.12 的值却是######,以及'1.12'的值变成了 '1.120'。

  我们重新确定一个新的需求:

  1、去空格

  2、小数点最多4位,最少保留2位。

  1--->'1.00';1.1--->'1.00';1.12-->'1.12';1.1234--->'1.1234';

  1.12345--->'1.1235'

  最终实现如下:

  Select TO_CHAR(123.0233,'FM9999999.0099') FROM DUAL

  二、 To_char(1.9999,’FM90.0999’)这个函数规格化时90.0999的含义是有9的地方如果有数字就显示如果没有数字就不显示,有0的地方在没有数字的时候也会有0来占位.但这样做也有一个很大的缺点,就是如果是整数时它也仍然会显示”.”,不要小瞧这个点,一般来讲页面上要显示的话这个点就是多余的.也给我们造成了不小的麻烦.还要自己再写函数来把这个小点搞定.

  三、对于日期型的Oracle倒时提供了一个好的处理方法,可以把日期做成数值型的.然后再To_char就能显示出你所需要的类型了.

  四、 在使用select into时一定要注意,这种方法你一定要确认肯定会有数据被查出时才能使用.如果查询结果为空时会导致报错.还有一种情况是查出来的数据是多条也会报错.所以应该尽量便宜游标来做.会减少错误产生的机率.

  五、还有注意一点rownum不支持排序,就是说你想用这个来控制行数的话就会发现他没有按你指定的排序方式显示.,这是一个很难办的事.而且如果你用rownum=2这样的语句来输出第二行的话也是行不通的. 六、最恶心的一点是Oracle对null的判断变态到极点.如果你说某个变量 aa=null它是判断不出来的.尽管aa的确是空.即使在选择条件里也是判断不出来的.不知道为什么,只好用nvl()这个函数来判断了.在条件之外可以用 aa is null 来判断.

  六补充一点.就是在写存储过程时要注意参数名不能与数据库字段名相同.否则Oracle会把这个参数名看成是字段名的,即使你用表的别名区分也不行.所以起参数名的时候一定要注意这点了.

相关视频

    没有数据

相关阅读 Oracle PRKC-1002错误原因和解决方案oracle10g安装图解(win7)Oracle错误代码大全oracle查看实例名方法Oracle表空间恢复方案微软亚太研发集团总部大楼 扎根中国"硅谷"亚马逊网络服务推出Oracle RDS如何关闭oracle rac选项 make rac_off

文章评论
发表评论

热门文章 oracle10g安装图解(wi

最新文章 数据库流行度排行2019oracle10g安装图解(wi SQL2008全部数据导出导入两种方法SQL2005新建复制“找不到存储过程 错误:28Dos远程登录mysql数据库详细图文教程mysql怎么开启远程登录功能

人气排行 mysql自动定时备份数据库的最佳方法-支持wiVisual Foxpro 6.0安装向导图文教程SQL Server 2008 安装图文教程SQL2008全部数据导出导入两种方法SQL 2000/2005/2008 的收缩日志方法,和清理mysql出 Can't connect to MySQL server onoracle10g安装图解(win7)sql2005安装图解_(sql server2005)安装教程