[20161003]to_char与前导空格.txt

[20161003]to_char与前导空格.txt

--昨天做测试时遇到的问题:
create table t1 tablespace sugar as select rownum id ,lpad('A',32,'A') name from dual connect by level<=1e5;

--但是我写成如下:
create table t1 tablespace sugar as select rownum id ,to_char(rownum,'000000')||lpad('A',26,'A') name from dual connect by level<=1e5;

--我以为两者应该占用大小一样,但是发现不同。
SCOTT@book> @ &r/desc t1
           Name    Null?    Type
           ------- -------- --------------
    1      ID               NUMBER
    2      NAME             VARCHAR2(33)

--发现name类型是VARCHAR2(33),根本不是我期望的VARCHAR2(32).

SCOTT@book> column c120 format a120
SCOTT@book> select dump(name) c120 from t1 where rownum=1 ;
C120
------------------------------------------------------------------------------------------------------------------------
Typ=1 Len=33: 32,48,48,48,48,48,49,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65

--自己发现前面有一个空格。

在官方文档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.

--使用FM正常,什么意思呢?

SYS@book> SELECT TO_CHAR(12, 'FM0000') FROM DUAL;
TO_CH
-----
0012

SYS@book> SELECT length(TO_CHAR(12, 'FM0000')) FROM DUAL;
LENGTH(TO_CHAR(4,'FM0000'))
---------------------------
                         4

FM Yes
Returns a value with no leading or trailing blanks.
See Also: Additional discussion on this format model modifier in the Oracle Database SQL Reference.

--下次在测试中注意这个细节。

时间: 2024-07-31 01:45:33

[20161003]to_char与前导空格.txt的相关文章

printf-去掉字符串的前导空格,这个程序哪里错了

问题描述 去掉字符串的前导空格,这个程序哪里错了 #include #include void main() { char s[100]; scanf("%d", &s); int p=0,i; for(i=0;s[i];i++) { if(s[i]==' ') p++; else break; } for(i=0;s[i];i++) { s[i]=s[i+p]; } printf("%s",s); } 解决方案 #include <stdio.h&g

C++第17周项目2——用指针玩字符串(5)去前导空格

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 [项目2-用指针玩字符串]神奇的指针哟,指向整型的指针int *p1,可以操作整型数组int a[]:指向字符型的指针char *p2,可以操作字符数组(字符串)char str[]:指向指针的指针可以操作二维数组.更灵活的是,在函数的传递中,指针.数组名在一定程度上可以互换. 本项目试图通过编制操作字符串的函数,实现字符串的操作. 请编制函数,其功能是对字符串的进行操作

java-如何用String.format加上前导空格

问题描述 如何用String.format加上前导空格 在某本大学java教材里,例题是关于显示当月月历的.在每月的第一天之前显示前导空格以对齐,下列就是部分代码,但是eclipse报错,说后面的空格是字符,不符合该方法的参数表.不知道到底应该怎么用,求解 now.set(year, month-1, 1); str+=String.format("%"+4*week+"c",' '); 解决方案 now.set(year, month-1, 1); str+=St

[20140723]多余的空格.txt

[20140723]多余的空格.txt --昨天同事想删除一个索引,发现无法删除,最后检查发现索引名字的后面多加了一个空格.自己做一个测试例子来演示: SCOTT@test> @ver BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Pro

[20161029]windows 7的文件名开头空格.txt

[20161029]windows 7的文件名开头是空格的问题.txt --今天遇到windows 7的文件名开头是空格的一个bug,通过一个例子来说明: 1.建立一个文件夹aaa: 里面包含2个文件1.txt," 1.txt", --注:第2个文件前面有一个空格要使用引号.实际上在图形界面上你无法建立前面带空格的文件,至少在widows7下. --我是使用记事本编辑1.txt ,然后选择另存为打入 " 1.txt"生成的. D:\temp\aaa>dir  

在asp.net下实现Option条目中填充前导空格的方法_实用技巧

在使用Web页面上的下拉列表框(SELECT element)显示数据列表时,有时我们会遇到有层次的数据条目.比如论坛中的子论坛和它的分类之间,以及一些具有包含关系的层次数据条目.使下拉列表框中,不同的level有一定的显示缩进将是非常友好的一种排版方式.     如果在HTML编写状态下,或在ASP等脚本语言中,制作这样的下拉列表窗口非常容易.我们知道空格" "在Option标签的前后是会被brower的显示引擎自动忽略掉的,所以我们使用硬空格 就可以了,效果如下图:    <

ASP trim,ltrim,rtrim 去前后空格 函数

这个主要应用于,获取用户输入的时候,防止用户不小心,多输入了一个空格,导致验证无法通过,多用于用户名跟密码的,好多情况下,大家复制的winrar的解压密码,都会默认多输入一个空格,所以这个是需要注意的. 在获取字符串时,用trim清理下前后的空格,对程序开发人员是个好习惯. 使用方法: password=trim(request("password")) 复制代码 代码如下: dim txttxt=" This is a beautiful day! " docum

ASP trim,ltrim,rtrim 去前后空格 函数_ASP基础

这个主要应用于,获取用户输入的时候,防止用户不小心,多输入了一个空格,导致验证无法通过,多用于用户名跟密码的,好多情况下,大家复制的winrar的解压密码,都会默认多输入一个空格,所以这个是需要注意的. 在获取字符串时,用trim清理下前后的空格,对程序开发人员是个好习惯.使用方法: password=trim(request("password")) 复制代码 代码如下: dim txttxt=" This is a beautiful day! " docume

JavaScript去除空格的三种方法

javascript 方法一:最好的方法.采用的是正则表达式,这是最核心的原理.其次.这个方法使用了JavaScript的prototype 属性 其实你不使用这个属性一样可以用函数实现.但这样做后用起来比较方便.下面就来看看这个属性是怎么来用的.  引用内容 返回对象类型原型的引用. objectName.prototypeobjectName 参数是对象的名称. 说明用 prototype 属性提供对象的类的一组基本功能.对象的新实例"继承"赋予该对象原型的操作. 例如,要为 Ar