数值型

理解精度

number类型的精度表示可以标识数据精确度的位数。对于数字13245.977,当精确到小数点后2位,数据为12345.98,此时精度为7。而当精确到小数点前2位,数据为12300,此时精度为3,因为有3个数字对数据的准确度作出贡献

精度与小数位数

number类型中。小数位数可正可负,当为负数时,表示将数字精确到小数点之前的位数,当小数位数为0时,表示将数字精确到正数

指定number类型的列或变量时,小数位数不能超过精度

number(5,2)表示,精度为5,精确到小数点后2位

数值处理

返回数字的绝对值-abs()

select abs(-12.45) from dual

结果:21.45

四舍五入-round()

select round(4.37,1) result from dual

结果:4.4

select round(456.37,-1) result from dual

结果:460

select round(456.37) result from dual

结果:456

当小数位数为0或省略时,表示精确到整数

向上取整-ceil()

ceil()返回大于等于数值型参数的最小整数

想下取整-floor()

floor()返回小于等于参数的最大整数

取模操作-mod()

mod()返回一个除法表达式的余数

mod(被除数,除数)

select mod(5,2) result from dual

结果;1

在mod()中,被除数可以是0

select mod(5,0) result from dual

结果:5

返回数字的正负性-sign()

当参数大于0,返回1,当参数小于0,返回-1,当参数为0返回0

返回数字平方根-sqrt()

参数不能小于0

乘方运算-power()

select power(4,3) result from dual

结果64.4是底数,3是指数

截取数字–trunc()

trunc()截取时不进行四舍五入,而是直接舍去

select trunc(3.789,2) result from dual

结果:3.78

将ASCII码转换为字符-chr()

select chr(65) result from dual

结果:A

应用:向数据表中插入不宜直接输入的字符。在Oracle中,‘&’用来进行变量引用,当插入含有改符号时,Oracle可能会将其解释为变量引用

insert into test_char(f_char) values('&id=1');

此时pl/sql给出提示窗口,要求输入变量的值。处理该问题时,首先将其defin选项关闭,再执行插入

set define off
insert into test_char(f_char) values('&id=1');

格式化数值-to_char()

格式字符‘0’

0代表一个数字位,当原数值没有数字位与之匹配时,强制添加0

select to_char(12.78,'000.000') result from dual

结果:012.780

格式字符‘9’

9代表一个数字位,当原数值的整数部分没有数字位与之匹配,不填充任何字符

select to_char(12.78,'999.999') result from dual

结果:12.780

select to_char(0.78,'999.999') result from dual

结果:.780

对于小于1的小数来说,格式参数的个位使用‘0’更好

select to_char(0.78,'990.999') result from dual

结果:0.780

格式字符‘,’
select to_char(4560000,'99,999,990.00') result from dual

结果:4,560,990,00

格式字符‘FM’
select to_char(12.78,'FM000.000') result from dual

结果:012.780

select to_char(12.78,'FM999.999') result from dual

结果:12.78

FM格式符的意义在于屏蔽所有不必要的空格和0

格式字符‘$’
select to_char(12.78,'$999.999') result from dual

结果:$12.780

$可以出现在任何位置,而不必出现在开头

select to_char(12.78,'999.9$99') result from dual

结果:$12.780

如果‘FM’和‘$’均出现在格式参数中,则FM必须出现在开头,否则报错

select to_char(12.78,'FM$999.999') result from dual

结果:$12.78

格式字符‘L’

L是指定指定本地化货币的标识

select to_char(12.78,'FML999.999') result from dual

结果:¥12.78

格式字符‘C’

C返回与数据库系统环境相关的货币种类符号

select to_char(12.78,'FM999.999C') result from dual

结果:12.78CNY

CNY代表国际标准的人民币货币种类符号

十进制转十六进制

注意:‘x’的位数不能小于实际十六进制数的位数

select to_char(255,'xxx') from dual

结果:ff

select to_char(255,'x') from dual

结果:##。这是错误的结果

Oracle中数值型及处理方法的更多相关文章

  1. JQuery源码-------JQuery中数值型变量的判断isNumeric

    判断一个数值型变量的方法,在jquery中非常简单,只有一行代码. isNumeric: function( obj ) { // parseFloat NaNs numeric-cast false ...

  2. oracle中的round()方法的用法

    [oracle中的round()方法的用法] Round( ) 函数 传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果 oracle一般常用于计算表空间内存还有多少空间 语法 ROUN ...

  3. Oracle计算数值型的幂次方——POWER()

    Oracle计算数值型的幂次方 简介:幂次方就是幂函数的变形,在POWER(value1,value2)中,value1就是函数的底数,value2就是函数的指数.如:POWER(value1,val ...

  4. Oracle中的 UPDATE FROM 解决方法

    转:http://www.cnblogs.com/JasonLiao/archive/2009/12/23/1630895.html Oracle中的 UPDATE FROM 解决方法 在表的更新操作 ...

  5. Oracle中对列加密的方法

    Oracle中对列加密的方法 2011-12-22 17:21:13 分类: Linux Oracle支持多种列加密方式: 1,透明数据加密(TDE):create table encrypt_col ...

  6. Oracle中查询各种对象的方法小结

    --查看当前库中的所有表select * from all_tables a where a.table_name='INFOCODE_P20081'--查看表结构select * from all_ ...

  7. Oracle中字符串连接的实现方法

    1.和其他数据库系统类似,Oracle字符串连接使用“||”进行字符串拼接,其使用方式和MSSQLServer中的加号“+”一样. 例如: SELECT '工号为'||FNumber||'的员工姓名为 ...

  8. oracle中insert 多条数据方法

    oracle中的insert 和 mysql添加多条数据的 方式不太一样 用到的语法: insert all into 表名(需要添加的表字段)values(添加的字段数据一定要对应字段顺序) int ...

  9. Oracle中创建自增字段方法

    oracle没有ORACLE自增字段这样的功能,但是通过触发器(trigger)和序列(sequence)可以实现. 下面给大家讲个例子: 1.在Oracle中创建一个表: .创建一个表 ) prim ...

  10. oracle中can not set解决方法

    原因:set autotrace on和set trimspool on在pl\sql中使用不了 解决方法:在window环境中,使用cmd命令,sqlplus user_name/password@ ...

随机推荐

  1. C# 调用 Win10/11 文件关联对话框

    方法一:调用未公开接口 IOpenWithLauncher Adobe Acrobat 应该是调用的未公开接口方法 [ComImport] [InterfaceType(ComInterfaceTyp ...

  2. 3. RabbitMQ 的(Hello World) 和 RabbitMQ 的(Work Queues)工作队列

    3. RabbitMQ 的(Hello World) 和 RabbitMQ 的(Work Queues)工作队列 @ 目录 3. RabbitMQ 的(Hello World) 和 RabbitMQ ...

  3. Mybatis三大执行器

    目录 1.执行器介绍 执行器的选择入口 设置执行器两种方式 全局配置(不建议) 局部设置(建议) 2.三个执行器区别 SimpleExecutor ReuseExecutor BatchExecuto ...

  4. doctrine-orm基础(单用doctrine避坑指南)

    附: doctrine基础(一):https://www.jianshu.com/p/3681e1add282 doctrine官网: https://www.doctrine-project.org ...

  5. k8s-1.18.0版本-kubeadmin部署(提供阿里云镜像)(二)master节点

    k8s-1.18.0版本-kubeadmin部署 (提供阿里云镜像) 个人服务器地址:http://101.201.140.7/wp-blog/ 系统开启kube-proxy的ipvs前置条件 从k8 ...

  6. AutoFac学习Demo1——官网Demo

    AutoFac实现Demo1 1.创建一个工作台(.NET Core)程序AutofacDemo1,nuget引入AutoFac,搜索第一个就是 2.创建输出接口IOutput及实现ConsoleOu ...

  7. SpringCloud项目使用nacos配置

    SpringCloud项目 pom.xml 注意SpringCloud和SpringCloudAlibaba的版本对应. Spring Cloud Alibaba Version Spring Clo ...

  8. K8s Service 示例详解

    Kubernetes 官方文档:Services-Networking Service介绍 在kubernetes中,pod是应用程序的载体,我们可以通过pod的ip来访问应用程序,但是pod的ip地 ...

  9. RocketMQ半消息对消费者不可见是如何实现的?——事务消息机制揭秘

    首发于工号[BiggerBoy],原文链接 --"半消息藏在这里,但为什么你偷看也没用?" 上篇<RocketMQ系列笔记(三):消息模型与高阶玩法,顺序事务消息拿捏指南&g ...

  10. 解决github无法访问的问题,亲测有效--很强

    参考:https://segmentfault.com/a/1190000037498373 ubuntu系统:在/etc/hosts文件中增加以下内容: windows系统:C:\Windows\S ...