Oracle中字符型级处理方法
字符型简介
固定长度字符串-char(n)
n代表字符串的长度,当实际长度不足时,利用空格在右端补齐,n的最大值不能大于2000。所以只要是固定长度的字符串,他的length(值)的长度总为n
varchar(n)
可变长度字符串,当实际长度不足时,不使用空格进行补充,同样长度也不许超出n。当作为列的数据类型时,最大长度不能大于4000
varchar2(n)
可变长度字符串,尽量使用varchar2(n)而非varchar(n),因为使用varchar2(n)可以获得Oracle向后兼容性的保证。当作为列的数据类型时,最大长度不能大于4000
varchar2(n)和char(n)的选择
char(n):占用空间大。但效率高。以空间换时间
varchar2(n):占用空间小,在不断调整长度时,会损耗效率
变量声明中的字符串类型
char(n),varchar(n),varchar2(n),都可用于声明变量。但是三者声明时,最大长度均为32767
declare s char(32767)
字符型处理
向左补全字符串-lpad()
lpad()用于向左补全字符串,格式化字符串。将字符串格式化为指定长度,有不足部分,则在左端填充特定字符,语法如下:
lpad(string,padded_length,[pad_string])
select lpad('1',4,'0') empplyee_no from dual
结果0001
如果原字符串长度已超过预期长度,也将从字符串左端进行截取
select lpad('12345',4,'0') empplyee_no from dual
结果1234
向右补全字符串-rpad()
select rpad('1',4,'*') empplyee_no from dual
结果1***
注意:当原始字符串长度大于预期长度时,rpad()同样是自左端截取字符串
select rpad('12345',4,'*') empplyee_no from dual
结果1234
返回字符串小写形式-lower()
返回字符串大写形式-upper()
单词首字符大写-initcap()
select initcap('like') new_word from dual
结果:Like
select initcap('LIKE') new_word from dual
结果:Like
无论使用全小写形式,还是全大写形式,都将返回首字符大写,其余字符小写的形式
initcap()是以单词为单位,而非整个字符串
select initcap('we all like bike') new_string from dual
结果:We All Like Bike
注意:只要是非单词字符都将作为单词的分隔符,
select initcap('we-all-like-bike') new_string from dual
结果:We-All-Like-Bike
返回字符串长度-length()
length()的参数不仅可以为字符串,还可以是其他类型
select length(123.45) len from dual
结果:6
length(’’),Oracle中将空字符串一律视为null,将null作为参数的函数都返回null
截取字符串-substr()
substr(string,start_index,length)
string指定原始字符串,start_index指定开始截取的位置,第三个参数指定截取的长度。
注意:Oracle中字符串的第一个字符的位置是1
select substr('123456789',2,3) sub_string from dual
结果:234
当没有指定第三个参数时,将从开始位置一直截取到末尾
获得字符串出现的位置-instr()
instr()用于返回子字符串在父字符串中出现的位置,如果为出现,返回0
select instr('132456789','56') position from dual
结果:5
select instr('132456789','56',7) position from dual
表示从‘123456789’的第7个字符开始搜索,结果为0
select instr('132456789','56',1,2) position from dual
第4个参数指定第几次获得子字符串才是真正要搜寻的结果。结果为0
删除字符串左侧空格-ltrim()
删除字符串右侧空格-rtrim()
删除字符串两侧空格-trim()
串联字符串-concat()
concat()只有2个参数,若要对多个字符串进行连接,则需要多个concat()嵌套
select concat(concat('hellow',hellow),world) nbew_str from dual
结果:hellow hellow world
翻译字符串-translate()
select translate('+-*','1+23-4*','abcdefghijklmnopqrstuvwxyz') trans from dual
翻译第一个字符串‘±’。过程:在第二个字符串寻找+,得到位置2,然后在第3个字符串中获得位置为2的字符b,接着翻译-和。最终结果:beg
反转字符串-reverse()
select reverse('abcdefgh') from dual
结果:hgfedcba
如果反转双字节字符,例如汉字,将返回乱码
Oracle中字符型级处理方法的更多相关文章
- Mysql查询语句中字符型字段不区分大小写解决方法
项目中和前端联调的时候,发现Mysql查询语句中字符型字段值过滤是不区分大小写的,之前没有关注过这个设置,特意去网上看了下,原因是Mysql中“COLLATE”属性区分大小写,而该属性默认值为“utf ...
- Oracle中对列加密的方法
Oracle中对列加密的方法 2011-12-22 17:21:13 分类: Linux Oracle支持多种列加密方式: 1,透明数据加密(TDE):create table encrypt_col ...
- oracle中字符串连接用||
oracle中字符串连接用|| create or replace procedure testIf(idid number) is v_name stu.name%type; v_age stu.a ...
- Oracle中的 UPDATE FROM 解决方法
转:http://www.cnblogs.com/JasonLiao/archive/2009/12/23/1630895.html Oracle中的 UPDATE FROM 解决方法 在表的更新操作 ...
- oracle中的round()方法的用法
[oracle中的round()方法的用法] Round( ) 函数 传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果 oracle一般常用于计算表空间内存还有多少空间 语法 ROUN ...
- Oracle数据库中字符型字段按数字排序
今天在转换数据时,遇到了一个主键排序的问题.字符型的主键,保存的都是数字,数据导过来以后发现数据排序都是乱的,就想着按数字规则排序. 但发现to_number总是报错,就想着里面应该是有字符存在.后来 ...
- Oracle中查询各种对象的方法小结
--查看当前库中的所有表select * from all_tables a where a.table_name='INFOCODE_P20081'--查看表结构select * from all_ ...
- Oracle中字符串连接的实现方法
1.和其他数据库系统类似,Oracle字符串连接使用“||”进行字符串拼接,其使用方式和MSSQLServer中的加号“+”一样. 例如: SELECT '工号为'||FNumber||'的员工姓名为 ...
- C语言中字符型,整数型,浮点型在内存中如何存储
···void main() { unsigned char a = 97; printf("%p",&a); printf("%c,%d\n", a, ...
- Oracle中创建千万级大表归纳
从一月至今,我总共归纳了三种创建千万级大表的方案,它们是: 下面是这三种方案的对比表格: # 名称 地址 主要机制 速度 1 在Oracle中十分钟内创建一张千万级别的表 https://www.cn ...
随机推荐
- Win10隐藏托盘图标-注册表
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer NoTrayItemsDisplay(类型: ...
- 2024 (ICPC) Jiangxi Provincial Contest -- Official Contest
L. Campus 1.首先考虑时间复杂度,因为最多只会有2*k的时间点,所以我们采取的策略是,对这每个时刻,判断有多少扇门是开的,并且考虑这些门到其他点的最短路之和. 2.输入完数据以后,使用dij ...
- 云备份技术解析:云容灾 CT-CDR 关键技术介绍
本文分享自天翼云开发者社区<云备份技术解析:云容灾 CT-CDR 关键技术介绍>,作者:沈****军 1.CDP+存储快照,实现秒级RPO (1)CDP技术:云容灾CT-CDR(Cloud ...
- Rocketmq 如何保证消息的可用性/可靠性/不丢失呢 ?
如何保证消息的可用性/可靠性/不丢失呢 ? 消息可能在哪些阶段丢失呢?可能会在这三个阶段发生丢失:生产阶段.存储阶段.消费阶段 生产阶段 在生产阶段,主要通过请求确认机制,来保证消息的可靠传递 1.同 ...
- LVGL基础对象的框架、思维与概念,以及部分源码解析
概念: Lvgl虽然是以C语言进行编程开发,但其中借鉴了CSS当中编程思想,引入了类与对象的概念,其中lvgl的基础单位为控件,等同于HTML5当中的标签. Lvgl当中的"类"是 ...
- 领域驱动的事实与谬误 一 DDD 与 MVC
本文有以下几个目的: 让新手少交智商税,少浪费时间看一些软文. 普及一个基本概念:了解一项观点的提出年代和最初初衷,才能更好地掌握其精粹. 我想指出市场上一些误人子弟的软文. 首先说明:文中所说的谬误 ...
- 漏洞预警 | Apache NiFi信息泄露漏洞
0x00 漏洞编号 CVE-2024-56512 0x01 危险等级 中危 0x02 漏洞概述 Apache NiFi是一个强大的.易于使用的数据集成平台,旨在自动化和管理数据流,尤其是在大数据环境中 ...
- 【BUG】.NET项目|未能加载文件或程序集“xxx”,或它的某一个依赖项。系统找不到指定的文件的通解
出错代码: MSBuildWorkspace workspace = CreateWorkspace(); Solution solution = workspace.OpenSolutionAsyn ...
- SQL 日常练习 (十九)
趁热打铁, 一波 SQL 继续带走 ~~ 虽然是假期, 但我也不想出去逛, 宅着也不想看书和思考人生, 除了做饭, 就更多对着电脑发呆. 时而看了下微信群, 初中小伙伴结合, 祝福寄语 和 随份子 都 ...
- Windows平台调试器原理与编写03.单步
调试器原理与编写03.单步-C/C++基础-断点社区-专业的老牌游戏安全技术交流社区 - BpSend.net 单步 TF - 置位(置1 复位就是置0) 单步步入 -- 遇到call便入 单步步过 ...