Oracle 给字符串补空格、补0

简介: 利用lpad()、RPAD()函数来实现给字符串补空格或补0的功能: 一、lpad()lpad函数将左边的字符串填充一些特定的字符其语法格式如下:lpad(string,n,[pad_string])string:字符或者参数n:字符的长度,是返回的字符串的数量,如果这个数量比原字符串的长度要短,lpad函数将会把字符串截取成从左到右的n个字符;pad_string:可选参数,这个字符串是要粘贴到string的左边,若这个参数未写,lpad函数将会在string的左边粘贴空格。

利用lpad()、RPAD()函数来实现给字符串补空格或补0的功能:

一、lpad()
lpad函数将左边的字符串填充一些特定的字符其语法格式如下:lpad(string,n,[pad_string])
string:字符或者参数
n:字符的长度,是返回的字符串的数量,如果这个数量比原字符串的长度要短,lpad函数将会把字符串截取成从左到右的n个字符;
pad_string:可选参数,这个字符串是要粘贴到string的左边,若这个参数未写,lpad函数将会在string的左边粘贴空格。

二、Rpad()
rpad函数将右边的字符串填充一些特定的字符其语法格式如下:rpad(string,n,[pad_string])
string:字符或者参数
n:字符的长度,是返回的字符串的数量,如果这个数量比原字符串的长度要短,lpad函数将会把字符串截取成从左到右的n个字符;
pad_string:可选参数,这个字符串是要粘贴到string的右边,如果这个参数未写,lpad函数将会在string的右边粘贴空格。

 

具体代码示例:

补空格:

 1 --Function
 2 create or replace function get_FillSpaces
 3 (
 4   P_String IN VARCHAR2,--传入的字串
 5   P_LR IN VARCHAR2,--L为左、R为右
 6   P_Length IN int--总长度
 7 ) return varchar2 is
 8   v_Temp varchar2(1000):='';
 9 begin
10   if lengthb(P_String)>=P_Length then
11     v_Temp:=P_String;
12   else
13     if P_LR='L' then--左补
14       v_Temp:=lpad(P_String,P_Length+(lengthb(P_String)-length(P_String)));
15     else
16       v_Temp:=RPAD(P_String,P_Length+(lengthb(P_String)-length(P_String)));
17     end if;
18   end if;
19     
20   return(v_Temp);
21   
22 end get_FillSpaces;
23 
24 --Test
25 select get_FillSpaces('asdf中国','L',20) from dual;--返回结果:'              asdf中国'
26 select get_FillSpaces('asdf中国','R',20) from dual;--返回结果:'asdf中国              '

补0:

 1 --Function
 2 create or replace function get_FillZero
 3 (
 4   P_String IN VARCHAR2,--传入的字串
 5   P_LR IN VARCHAR2,--L为左、R为右 
 6   P_Length IN int--总长度
 7 ) return varchar2 is
 8   v_Temp varchar2(1000):='';
 9   v_Name varchar2(1000):='';
10 begin
11   --去除小数点
12   if P_String is not null then
13     v_Name:=replace(P_String,'.','');
14   end if;
15   
16   if length(v_Name)>=P_Length then
17     v_Temp:=v_Name;
18   else
19     if P_LR='L' then--左补零
20       v_Temp:=replace(lpad(v_Name,P_Length+(lengthb(P_String)-length(P_String))),' ','0');
21     else
22       v_Temp:=replace(RPAD(v_Name,P_Length+(lengthb(P_String)-length(P_String))),' ','0');
23     end if;
24   end if;
25     
26   return(v_Temp);
27   
28 end get_FillZero;
29 
30 
31 --Test
32 select get_FillZero('asdf中国','L',20) from dual;--返回结果:'00000000000000asdf中国'
33 select get_FillZero('asdf中国','R',20) from dual;--返回结果:'asdf中国00000000000000'

 

 

如果您看了本篇博客,觉得对您有所收获,请点击右下角的 [推荐]

如果您想转载本博客,请注明出处

如果您对本文有意见或者建议,欢迎留言

感谢您的阅读,请关注我的后续博客

目录
相关文章
|
6月前
|
SQL Oracle 关系型数据库
Oracle查询优化-计算字符在字符串中出现的次数
【2月更文挑战第3天】【2月更文挑战第7篇】只接上SQL
138 0
|
6月前
|
SQL Oracle 关系型数据库
Oracle之如何遍历字符串
Oracle之如何遍历字符串
168 1
|
6月前
|
SQL Oracle 关系型数据库
Oracle insert数据时字符串中有‘单引号问题
Oracle insert数据时字符串中有‘单引号问题
|
6月前
|
Oracle 关系型数据库
Oracle查询优化-在字符串删除特定字符
【2月更文挑战第4天】【2月更文挑战第8篇】比较灵活,列举三个常见的方式
363 0
|
6月前
|
Oracle 关系型数据库
Oracle查询优化-遍历字符串
【2月更文挑战第3天】【2月更文挑战第6篇】Oracle查询优化-遍历字符串
61 0
|
6月前
|
Oracle 关系型数据库 数据库
Oracle查询优化-按照数字和字母混合字符串中的字母排序
【1月更文挑战第3天】【1月更文挑战第7篇】在对Oracle数据库进行查询优化,尤其是按照数字和字母混合字符串中的字母进行排序时,可以使用多种方法来达到预期的结果。
158 0
|
SQL Oracle 关系型数据库
Oracle 插入时间时 ,报错:ORA-01861: 文字与格式字符串不匹配
Oracle 插入时间时 ,报错:ORA-01861: 文字与格式字符串不匹配
450 0
|
XML SQL Oracle
解决Oracle中XML插入数据时的空格问题
解决Oracle中XML插入数据时的空格问题
87 0
|
SQL Oracle 关系型数据库
oracle在sql中判断字段值是数字还是字符串
oracle在sql中判断字段值是数字还是字符串
|
Oracle 关系型数据库 数据处理
通过Oracle识别字符串中的中文or字母or数字来介绍全角半角转换函数(to_multi_byte/to_single_byte)在varchar/clob中的使用案例
在日常处理数据的过程中,大家肯定会遇到很多奇奇怪怪的字符,然后还要对这些字符处理,比如***你有个需求:识别字符串中的中文或是识别字母或是识别数字,甚至都识别出来然后剔除or保留某些字符汉字或数字***。 你去百度了一下相关问题,然后得到的结果大都是用正则 '\4E00' and '\9FA5'来识别中文范围用a-zA-z或0-9或[:digit:][:alpha:]来识别字母或数字。但是如果你的字符串中包含全角字符,那这样是识别不全的!!!那怎么做才能够正确的识别中文、字母、数字呢???那就要考虑先做全半
通过Oracle识别字符串中的中文or字母or数字来介绍全角半角转换函数(to_multi_byte/to_single_byte)在varchar/clob中的使用案例