您的位置:首页 > 数据库 > Oracle

Oracle 给字符串补空格、补0

2015-08-22 10:03 525 查看

利用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的右边粘贴空格。

 

具体代码示例:

补空格:

--Function
create or replace function get_FillSpaces
(
P_String IN VARCHAR2,--传入的字串
P_LR IN VARCHAR2,--L为左、R为右
P_Length IN int--总长度
) return varchar2 is
v_Temp varchar2(1000):='';
begin
if lengthb(P_String)>=P_Length then
v_Temp:=P_String;
else
if P_LR='L' then--左补
v_Temp:=lpad(P_String,P_Length+(lengthb(P_String)-length(P_String)));
else
v_Temp:=RPAD(P_String,P_Length+(lengthb(P_String)-length(P_String)));
end if;
end if;

return(v_Temp);

end get_FillSpaces;

--Test
select get_FillSpaces('asdf中国','L',20) from dual;--返回结果:'              asdf中国'
select get_FillSpaces('asdf中国','R',20) from dual;--返回结果:'asdf中国              '

补0:

--Function
create or replace function get_FillZero
(
P_String IN VARCHAR2,--传入的字串
P_LR IN VARCHAR2,--L为左、R为右
P_Length IN int--总长度
) return varchar2 is
v_Temp varchar2(1000):='';
v_Name varchar2(1000):='';
begin
--去除小数点
if P_String is not null then
v_Name:=replace(P_String,'.','');
end if;

if length(v_Name)>=P_Length then
v_Temp:=v_Name;
else
if P_LR='L' then--左补零
v_Temp:=replace(lpad(v_Name,P_Length+(lengthb(P_String)-length(P_String))),' ','0');
else
v_Temp:=replace(RPAD(v_Name,P_Length+(lengthb(P_String)-length(P_String))),' ','0');
end if;
end if;

return(v_Temp);

end get_FillZero;

--Test
select get_FillZero('asdf中国','L',20) from dual;--返回结果:'00000000000000asdf中国'
select get_FillZero('asdf中国','R',20) from dual;--返回结果:'asdf中国00000000000000'

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: