以下的文章主要是对Oracle to_char的用法的描述,相对而言Oracle to_char能在很短的时间里被广泛的应用,说明它的可实际应用性还是占优势的,以下就是文章的具体内容的介绍,希望你会有所收获。
Oracle函数to_char转化数字型指定小数点位数的用法
比如最简单的应用:
接下来再看看下面:
上面的结果 ‘.123’ 在大多数情况下都不是我们想要的结果,我们想要的应该是 ‘0.123’。
我们来看一下Oracle to_char函数的具体用法:
该函数将NUMBER类型的n按数值格式fmt转换成VARCHAR2类型的值。’nlsparams’指定由数值格式的元素返回的字符,包括:
小数点字符
组分隔符

本地钱币符号
国际钱币符号
变元的形式为:
其中d为小数点字符,g为组分隔符。
例 :
通过上面的了解,再查看fmt的一些格式,我们可以用以下表达式得到’0.123’的值:
‘ 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′
最终实现如下:
FM :除空格
9999999.0099:允许小数点左边最大正数为7位,小数点右边最少2位,最多4位,且在第5位进行四舍五入
PLSQL小经验一、 Oracle的to_char()函数功能很强大但是在用它格式化数值型数据时应该请注意以下几项。如果是小数如:0.23这样的数据经过to_char后再显示会变为.23,如果你为了让它显示出原来的0.23的话就得用Oracle To_char(要格式化的数值,’0.999’)保留三个小数,并显示但这里就要注意了。
他为你截取小数的时候是四舍五入了。所以如果是要求截掉小数而不四舍五入的话就应该自己写个函数截下去后再规格化。以保证它不四舍五入。
二、 To_char(1.9999,’FM90.0999’)这个函数规格化时90.0999的含义是有9的地方如果有数字就显示如果没有数字就不显示,有0的地方在没有数字的时候也会有0来占位.但这样做也有一个很大的缺点,就是如果是整数时它也仍然会显示”.”,不要小瞧这个点,一般来讲页面上要显示的话这个点就是多余的.也给我们造成了不小的麻烦.还要自己再写函数来把这个小点搞定.
四、 在使用select into时一定要注意,这种方法你一定要确认肯定会有数据被查出时才能使用.如果查询结果为空时会导致报错.还有一种情况是查出来的数据是多条也会报错.所以应该尽量便宜游标来做.会减少错误产生的机率.
五、 还有注意一点rownum不支持排序,就是说你想用这个来控制行数的话就会发现他没有按你指定的排序方式显示.,这是一个很难办的事.而且如果你用rownum=2这样的语句来输出第二行的话也是行不通的.
六、 最蹩脚的一点是Oracle对null的判断变态到极点.如果你说某个变量 aa=null它是判断不出来的.尽管aa的确是空.即使在选择条件里也是判断不出来的.不知道为什么,只好用nvl()这个函数来判断了.在条件之外可以用 aa is null 来判断.
补充一点.就是在写存储过程时要注意参数名不能与数据库字段名相同.否则Oracle会把这个参数名看成是字段名的,即使你用表的别名区分也不行.所以起参数名的时候一定要注意这点了 。
【编辑推荐】
Oracle数据库中时间-时间怎么写?
select to_date(to_timestamp(09:20:50, am), am) - to_date(to_timestamp(09:15:25, am), am)from dual;身边没oracle,不确定,你自己试试吧
oracle的SQL索引使用
1,第一次查询慢,以后就快了,主要是因为第一次要进行磁盘操作,以后数据被cache到内存中了,不在操作磁盘,所以就快了。 2,对于你说的这四种查询,where条件中的a=a估计你是举例子这样写的吧。 实际上应该是a=变量A。 其他的b,c,d也是这样。 那么这种语句都是可以利用你说的复合索引的。 如果是RBO优化器,这四句都应该用索引。 但是oracle现在推荐的CBO优化器不能保证你都走索引。 3,到底用没用索引,你可以从v$sqlaera中找到你的语句对应的hash_value,然后从v$sql_plan中找到语句的执行计划,通过执行计划确认你的语句是不是使用了索引。 具体语句你可以类似如下写法:select hash_value,sql_text from v$sqlarea where upper(sql_text) like %你需要查找的sql语句的特征片段%select * from v$sql_plan where hash_value = 上一句查到的hash_value
oracle是什么??
Oracle,仅次于微软的世界第二大软件公司Oracle虽然规模很大,但名声不像微软、IBM那样显赫,很多非计算机专业的在校学生不知道Oracle是何物。 但是如果你是一位想在毕业后进入IT行业的学生,那么,你必须知道什么是Oracle。 首先,Oracle是一家软件公司。 这家1977成立于加利福尼亚的软件公司是世界上第一个推出关系型数据管理系统(RDBMS)的公司。 现在,他们的RDBMS被广泛应用于各种操作环境:windows NT、基于UNIX系统的小型机、IBM大型机以及一些专用硬件操作系统平台。 事实上,Oracle已经成为世界上最大的RDBMS供应商,并且是世界上最主要的信息处理软件供应商。 现在,Oracle是仅次于微软公司的世界第二大软件公司,2000年的销售额为101亿美元。 现在Oracle在世界范围内大约聘用了4万3千多名专业技术人员,在美国本土有2万1千名。 有趣的是,即使在美国本土,Oracle的技术人员(主要是程序员)中有40%是印度人,中国人是第二多的,其次才是美国人。
发表评论