oracle空格转换函数,ORACLE TO_CHAR函数格式化数字的出现空格的缘故
ORACLE TO_CHAR函数格式化数字的出现空格的原因
在这篇博客SQL挑战——如何高效生成编码里面我由于需要将数字格式化为字符,像12需要格式化0012这样的字符,所以使用了TO_CHAR(数字,'0000')这样的写法,后面0000表示缺省补零,测试过程中,我发发现TO_CHAR(number,'0000') 会多一个空格。有点纳闷为什么了会多一个空格。
后面经过查看官方文档、同事讨论以及网友提供的资料,终于把这个问题给弄清楚了。下面梳理、总结于此,希望对其它人有所帮助。
在官方文档https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm#i34570里面你能看到一段介绍
Number Format Elements
A number format model is composed of one or more number format elements. The tables that follow list the elements of a number format model and provide some examples.
Negative return values automatically contain a leading negative sign and positive values automatically contain a leading space unless the format model contains the MI, S, or PR format element.
注意红色部分,意思是Number类型转换为字符时,负数会返回前面包含负号的字符串,正数则会返回前面包含空格的字符串,除非格式模式包含MI、S、或PR元素。查看TO_CHAR(4, '0000')返回的字符串长度,你会发现其长度为5.
1: SQL> SELECT TO_CHAR(4, '0000') FROM DUAL;2:3: TO_CH4: -----5: 00046:7: SQL> SELECT LENGTH(TO_CHAR(4, '0000')) FROM DUAL;8:9: LENGTH(TO_CHAR(4,'0000'))10: -------------------------11: 512:13: SQL> SELECT TO_CHAR(-4, '0000') FROM DUAL;14:15: TO_CH16: -----17: -0004
那么如何解决这个问题呢,目前有两种方法,一种方法是用TRIM去空格,另外一种是使用参数MI(MI参数是正数的空格放到字符串后面,将负数的负号放置在字符串后面),关于参数MI的解释如下所示:
Returns negative value with a trailing minus sign (-).
Returns positive value with a trailing blank.
Restriction: The MI format element can appear only in the last position of a number format model.
返回负值与尾随的负号 (-)。
返回正值尾随空白。
限制: MI 格式元素可以只能出现在数字的格式模式的最后一个位置。
其实这些还只是TO_CHAR函数的冰山一角,如果你通读文档https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm#i34570那么你会发现其实你所掌握的TO_CHAR函数还只是个皮毛而已。一个TO_CHAR函数如此强大,可见ORACLE的博大精深。
参考资料:
http:[email protected]/blog/static/121022611201454111640254/
https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm#i34570
oracle空格转换函数,ORACLE TO_CHAR函数格式化数字的出现空格的缘故相关推荐
- 【转】Oracle 中的 TO_DATE 和 TO_CHAR 函数 日期处理
Oracle 中的 TO_DATE 和 TO_CHAR 函数 oracle 中 TO_DATE 函数的时间格式,以 2008-09-10 23:45:56 为例 格式 说明 显示值 备注 Year(年 ...
- Oracle 中的 TO_DATE 和 TO_CHAR 函数 日期处理
Oracle 中的 TO_DATE 和 TO_CHAR 函数 日期处理 Oracle 中的 TO_DATE 和 TO_CHAR 函数 oracle 中 TO_DATE 函数的时间格式,以 2008-0 ...
- oracle编码转换utf16,oracle编码转换:AL32UTF8-ZHS16GBK
--修改Oracle数据库字符集为utf-8: SQL>conn / as sysdba; SQL>shutdown immediate; SQL>startup mount; SQ ...
- oracle rowid转换,【oracle】rowid解读
rowid记录数据的物理位置,通过rowid可以知道数据存放在那个数据文件的第几个块第几行. --------------------- extended rowid format --------- ...
- 如果去掉数学前后的空格_如何取消excel表格中数据前的空格-Excel 如何去除单元格中数字前后的空格...
excel单元格,数字前有空格(字符),怎么批量把空... 使用替换功能,批量处理 参考excel版本:2010(其他版本操作基本相同) 详细操作步骤及动画演示: 1.CTRL H,调出替换对话框 2 ...
- oracle把ascii吗,oracle中ascii函数及to_char函数使用及编码间的转换
一.ascii->char SQL> CREATE OR REPLACE PROCEDURE pasc_to_char(one IN VARCHAR2) 2 --RETURN VARCHA ...
- MySql函数, 实现Oracle中的to_data和to_char函数
1. to_date mysql中用法为:str_to_date('2017-05-01 23:59:59','%Y-%m-%d %T') 2. to_char mysql中的用法: date_fo ...
- oracle date 转换 timestamp,Oracle timestamp类型转换成date类型
今天需要根据时间判断,统一修改某一个字段的数据.然后打开数据库发现,时间类型为timestamp类型.如下: 然后呢,这对我不是喝口水就可以解决的问题吗? 解决方案如下:我需要改这张表某个字段的内容, ...
- oracle时间戳转换整数,oracle将时间戳转换为其他时间掩码
如何将这些数字列(timestamp,event_dt)转换为日期或时间掩码? 我想这一点:oracle将时间戳转换为其他时间掩码 select to_char(timestamp,'YYYY-MON ...
最新文章
- 《你的误区》《少有人走过的路》下载doc格式
- Python多进程multiprocessing共享数据Value(包括常用的整数、字符串)、列表及字典以及Queue
- Genymotion模拟器安装ARM架构编译应用失败解决方案
- 踏上Silverlight的征程 体验Silverlight之美
- 《深入理解 Spring Cloud 与微服务构建》第七章 负载均衡 Ribbon
- c语言三个月兴业,c语言输出2015年日历,要求三个月在一行...
- Android UI学习之---Button
- 2018注册测绘师各地报名时间和注意事项!莫错过哦!
- 测试 tolua 例子 TestErrorStack
- 使用阿里云Maven仓库
- CQF笔记Primer金融基础
- 基因型填充中的phasing究竟是什么
- 一级消防工程师【技术实务】(爆炸)
- 正则表达式——常用正则表达式验证有效数字、密码、真实姓名、邮箱、身份证号码及其正则捕获懒惰性原理
- 2023电工杯数学建模B题思路模型
- 云计算方向研究热点、 云计算有怎样的发展前景?
- 高新技术企业3年认定过期了怎么办
- seo网站推广方法简介
- miui 8.5 android,两年前的小米5突遭MIUI9 8.5.3更新!妥妥上安卓8.0
- 埃瓦里斯特·伽罗瓦Évariste Galois
热门文章
- 7.21.05 中断流程控制语句
- MAC ox下配置mysql
- 克服游戏运营中IB的长尾挑战
- 大作完成了一部分,陆续往上放吧
- 软件测试用python一般用来做什么-想要成为一个优秀的软件测试人员,应该学些什么?...
- python使用缩进来体现代码之间的逻辑关系-Python 使用缩进来体现代码之间的逻辑关系 ....
- python对笔记本电脑的要求-如何用Python在笔记本电脑上分析100GB数据(上)
- python装饰器原理-看完这篇文章还不懂Python装饰器?
- python如何爬虫-如何使用python爬虫爬取要登陆的网站
- python编程入门指南怎么样-Python 应该怎么学?