plsql中常用字符串函数

1.ASCII
返回与指定的字符对应的十进制数;
SQL> select ascii(’A’) A,ascii(’a’) a,ascii(’0’) zero,ascii(’ ’) space from dual;
A A ZERO SPACE
--------- --------- --------- ---------
65 97 48 32

2.CHR
给出整数,返回对应的字符;
SQL> select chr(54740) zhao,chr(65) chr65 from dual;
ZH C
-- -
赵 A
3.CONCAT
连接两个字符串;
SQL> select concat(’010-’,’88888888’)||’转23’ 高乾竞电话 from dual;
高乾竞电话
----------------
010-88888888转23
4.INITCAP
返回字符串并将字符串的第一个字母变为大写;
SQL> select initcap(’smith’) upp from dual;
UPP
-----
Smith

5.INSTR(C1,C2,I,J)
在一个字符串中搜索指定的字符,返回发现指定的字符的位置;
C1 被搜索的字符串
C2 希望搜索的字符串
I 搜索的开始位置,默认为1
J 出现的位置,默认为1
SQL> select instr(’oracle traning’,’ra’,1,2) instring from dual;
INSTRING
---------
9

6.LENGTH
返回字符串的长度;
SQL> select name,length(name),addr,length(addr),sal,length(to_char(sal)) from gao.nchar_tst;
NAME LENGTH(NAME) ADDR LENGTH(ADDR) SAL LENGTH(TO_CHAR(SAL))
------ ------------ ---------------- ------------ --------- --------------------
高乾竞 3 北京市海锭区 6 9999.99 7

7.LOWER
返回字符串,并将所有的字符小写
SQL> select lower(’AaBbCcDd’)AaBbCcDd from dual;
AABBCCDD
--------
aabbccdd

8.UPPER
返回字符串,并将所有的字符大写
SQL> select upper(’AaBbCcDd’) upper from dual;
UPPER
--------
AABBCCDD

9.RPAD和LPAD(粘贴字符)
RPAD 在列的右边粘贴字符
LPAD 在列的左边粘贴字符
SQL> select lpad(rpad(’gao’,10,’*’),17,’*’)from dual;
LPAD(RPAD(’GAO’,1
-----------------
*******gao*******
不够字符则用*来填满

10.LTRIM和RTRIM
LTRIM 删除左边出现的字符串
RTRIM 删除右边出现的字符串
SQL> select ltrim(rtrim(’ gao qian jing ’,’ ’),’ ’) from dual;
LTRIM(RTRIM(’
-------------
gao qian jing

11.SUBSTR(string,start,count)
取子字符串,从start开始,取count个
SQL> select substr(’13088888888’,3,8) from dual;
SUBSTR(’
--------
08888888

12.REPLACE(’string’,’s1’,’s2’)
string 希望被替换的字符或变量
s1 被替换的字符串
s2 要替换的字符串
SQL> select replace(’he love you’,’he’,’i’) from dual;
REPLACE(’H
----------
i love you

13.SOUNDEX
返回一个与给定的字符串读音相同的字符串
SQL> create table table1(xm varchar(8));
SQL> insert into table1 values(’weather’);
SQL> insert into table1 values(’wether’);
SQL> insert into table1 values(’gao’);
SQL> select xm from table1 where soundex(xm)=soundex(’weather’);
XM
--------
weather
wether

14.TRIM(’s’ from ’string’)

模板定义:Trim(Leading|Trailing|Both trim_character from trim_source)
LEADING 剪掉前面的字符
TRAILING 剪掉后面的字符

Both两边都减掉
如果不指定,默认为空格符

 

PL/SQL 拆分字符串函数是一种用于将一个字符串分割成多个子字符串函数。该函数在 PL/SQL 编程非常常见,可以在处理字符串的时候非常有用。 以下是一个示例的 PL/SQL 拆分字符串函数的实现: ``` CREATE OR REPLACE FUNCTION split_string(p_string IN VARCHAR2, p_delimiter IN VARCHAR2) RETURN SYS.ODCIVARCHAR2LIST PIPELINED AS v_start_pos NUMBER := 1; v_end_pos NUMBER; BEGIN LOOP v_end_pos := INSTR(p_string, p_delimiter, v_start_pos); IF v_end_pos > 0 THEN PIPE ROW(SUBSTR(p_string, v_start_pos, v_end_pos - v_start_pos)); v_start_pos := v_end_pos + 1; ELSE PIPE ROW(SUBSTR(p_string, v_start_pos)); EXIT; END IF; END LOOP; RETURN; END; / ``` 这个函数接受两个参数:要拆分的字符串和分隔符。函数使用循环和 INSTR 函数来找到每个子字符串的起始位置和结束位置,并使用 SUBSTR 函数提取子字符串。每个子字符串都通过 PIPE ROW 语句返回给调用程序。 下面是一个使用该函数的示例: ``` DECLARE v_string VARCHAR2(100) := 'Hello,World,PL/SQL'; BEGIN FOR rec IN (SELECT COLUMN_VALUE FROM TABLE(split_string(v_string, ','))) LOOP DBMS_OUTPUT.PUT_LINE(rec.COLUMN_VALUE); END LOOP; END; ``` 这个示例将字符串 'Hello,World,PL/SQL' 拆分成三个子字符串,并使用循环逐个打印每个子字符串。结果将会输出: ``` Hello World PL/SQL ``` 这就是一个简单的示例的 PL/SQL 拆分字符串函数的实现和使用,它可以大大简化处理字符串的任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值