Oracle常用字符串函数
Oracle常用字符串函数
2013-04-22 17:11:59| 分类: web开发-Oracle | 标签:oracle 字符串函数 oracle8 |字号 订阅
Oracle字符串函数
这些函数全都接收的是字符族类型的参数(CHR除外)并且返回字符值.
除了特别说明的之外,这些函数大部分返回VARCHAR2类型的数值.
字符函数的返回类型所受的限制和基本数据库类型所受的限制是相同的。
字符型变量存储的最大值:
VARCHAR2数值被限制为2000字符(ORACLE 8中为4000字符)
CHAR数值被限制为255字符(在ORACLE8中是2000)
long类型为2GB
Clob类型为4GB
1、CHR
语法: chr(x)
功能:返回在数据库字符集中与X拥有等价数值的字符。CHR和ASCII是一对反函数。经过CHR转换后的字符再经过ASCII转换又得到了原来的字
符。
例:select chr(65) from dual;--A
select ASCII('A') from dual;--65
2、CONCAT
语法: CONCAT(string1,string2)
功能:连接2个字符串
例:select concat('AA','BB') from dual;--AABB
select 'AA'||'BB' from dual;--AABB
3、INITCAP
语法:INITCAP(string)
功能:返回字符串的每个单词的第一个字母大写而单词中的其他字母小写的字符串。单词是用.或空格或给字母数字字符进行分隔。不是字母的
字符不变动。
例:select INITCAP('AABB') from dual;--Aabb
select INITCAP('AA BB') from dual;--Aa Bb
select INITCAP('AA.BB') from dual;--Aa Bb
4、LTRIM
语法:LTRIM(string1,string2)
功能:返回删除从左边算起出现在string2中的字符的string1。String2被缺省设置为单个的空格。数据库将扫描string1,从最左边开始。当
遇到不在string2中的第一个字符,结果就被返回了。LTRIM的行为方式与RTRIM很相似。
例:select LTRIM('2A2B12','A2') from dual;--B12
5、NLS_INITCAP
语法:NLS_INITCAP(string[,nlsparams])
功能:返回字符串每个单词第一个字母大写而单词中的其他字母小写的string,nlsparams
指定了不同于该会话缺省值的不同排序序列。如果不指定参数,则功能和INITCAP相同。Nlsparams可以使用的形式是:
‘NLS_SORT=sort’
这里sort制订了一个语言排序序列。
6、NLS_LOWER
语法:NLS_LOWER(string[,nlsparams])
功能:返回字符串中的所有字母都是小写形式的string。不是字母的字符不变。
Nlsparams参数的形式与用途和NLS_INITCAP中的nlsparams参数是相同的。如果nlsparams没有被包含,那么NLS_LOWER所作的处理和
LOWER相同。
7、NLS_UPPER
语法:nls_upper(string[,nlsparams])
功能:返回字符串中的所有字母都是大写的形式的string。不是字母的字符不变。nlsparams参数的形式与用途和NLS_INITCAP中的相同。如果
没有设定参数,则NLS_UPPER功能和UPPER相同。
8、REPLACE
语法:REPLACE(string,search_str[,replace_str])
功能:把string中的所有的子字符串search_str用可选的replace_str替换,如果没有指定replace_str,所有的string中的子字符串
search_str都将被删除。REPLACE是TRANSLATE所提供的功能的一个子集。
例:select REPLACE('aaabbbccc','bb','dd') from dual;--aaaddbccc
select REPLACE('aaabbbccc','bbb') from dual;--aaaccc
9、RPAD
语法:RPAD(string1,x[,string2])
功能:rpad函数从右边对字符串使用指定的字符进行填充
string 表示:被填充的字符串
padded_length 表示:字符的长度,是返回的字符串的数量,如果这个数量比原字符串的长度要短,rpad函数将会把字符串截取成从左到右的n个字符;
pad_string 是个可选参数,这个字符串是要粘贴到string的右边,如果这个参数未写,lpad函数将会在string的右边粘贴空格。
例:select rpad('tech', 7,'z') from dual;--techzzz
select rpad('tech', 2,'z') from dual;--te
10、RTRIM
语法: RTRIM(string1,[,string2])
功能: 返回删除从右边算起出现在string1中出现的字符string2. string2被缺省设置为单个的空格.数据库将扫描string1,从右边开始.当遇
到不在string2中的第一个字符,结果就被返回了。RTRIM的行为方式与LTRIM很相似.
例:select RTRIM('tech','h') from dual;--tec
11、SOUNDEX
语法: SOUNDEX(string)
功能: 返回string的声音表示形式.这对于比较两个拼写不同但是发音类似的单词而言很有帮助.
12、SUBSTR
语法: substr(string,start[,length])
功能: 函数返回字符串的一部分
例:select substr('abcdefg',1,2) from dual;--ab
select substr('abcdefg',0,2) from dual;--ab
select substr('abcdefg',-2,2) from dual;--fg
13、TRANSLATE
语法: TRANSLATE(string,from_str,to_str)
功能: 返回将所出现的from_str中的每个字符替换为to_str中的相应字符以后的string.
TRANSLATE是REPLACE所提供的功能的一个超集.
如果from_str比to_str长,那么在from_str中而不在to_str中而外的字符将从string中被删除,因为它们没有相应的替换字符. to_str不能为空
.Oracle把空字符串认为是NULL,并且如果TRANSLATE中的任何参数为NULL,那么结果也是NULL.
例:select TRANSLATE('abcdefg','','h') from dual;--null
select TRANSLATE('abcdefg','b','h') from dual;--ahcdefg
14、UPPER
语法: UPPER(string)
功能: 返回大写的string.不是字母的字符不变.如果string是CHAR数据类型的,那么结果也是CHAR类型的.如果string是VARCHAR2类型的,那么
结果也是VARCHAR2类型的.
例:select UPPER('abcdefg') from dual;--ABCDEFG
15、ASCII
语法: ASCII(string)
功能: 数据库字符集返回string的第一个字节的十进制表示.请注意该函数仍然称作为ASCII.尽管许多字符集不是7位ASCII.CHR和ASCII是互为
相反的函数.CHR得到给定字符编码的响应字符. ASCII得到给定字符的字符编码.
例:select chr(65) from dual;--A
select ASCII('A') from dual;--65
16、INSTR
语法: INSTR(string1, string2[a,b])
功能: 得到在string1中包含string2的位置. string1时从左边开始检查的,开始的位置为a,如果a是一个负数,那么string1是从右边开始进行
扫描的.第b次出现的位置将被返回. a和b都缺省设置为1,这将会返回在string1中第一次出现string2的位置.如果string2在a和b的规定下没有
找到,那么返回0.位置的计算是相对于string1的开始位置的,不管a和b的取值是多少.
例:select instr('abcdebfg','b',1,2) from dual;--6
oracle instr 用法
oracle instr 用法
Oracle INSTR函数的用法详解
在Oracle数据库中,INSTR函数是一个非常有用的字符串处理函数。它用于查找一个字符串在另一个字符串中第一次出现的位置,并返回一个整数值。本文将深入探讨INSTR函数的用法,并提供详细的步骤和示例来解释每个用法。
1. 基本语法:
INSTR函数的基本语法如下:
sql
INSTR(string, substring [,start_position [, nth_appearance]])
其中:
- string 是要在其中搜索的字符串。
- substring 是要搜索的子字符串。
- start_position 是开始搜索的位置,默认为1。
- nth_appearance 是要搜索的第n次出现的位置,默认为1。
2. 返回值:
INSTR函数的返回值是指定子字符串第一次出现的位置,位置从1开始计算。如果找不到子字符串,则返回0。
3. 用法示例:
(a) 查找子字符串的位置:
例如,我们有一个字符串"Hello World",并且想要找出子字符串"World"的位置。我们可以使用以下SQL语句:
sql
SELECT INSTR('Hello World', 'World') AS position FROM dual;
结果将返回5,因为子字符串"World"在原字符串中的第5个位置开始。
(b) 指定开始位置:
我们可以使用INSTR函数的第三个参数来指定开始搜索的位置。例如,我们有一个字符串"Hello World,Hello Universe",我们只想查找"Universe"的位置。我们可以使用以下SQL语句:
sql
SELECT INSTR('Hello World, Hello Universe', 'Universe', 13) AS
position FROM dual;
结果将返回23,因为我们从位置13开始搜索,找到了子字符串"Universe"在原字符串中的第23个位置。
oracle中left用法
oracle中left用法
在Oracle中,LEFT函数用于返回给定字符串的左边指定长度的子字符串。LEFT函数的语法如下:
LEFT(string, length)
其中,string是要进行操作的字符串,length是指定返回子字符串的长度。LEFT函数从字符串的左边开始,截取指定长度的字符,并将结果作为返回值。
例如,假设有一个字符串"Hello, World!",我们想要提取前5个字符,可以使用LEFT函数:
SELECT LEFT('Hello, World!', 5) as result
FROM dual;
运行上述SQL语句,将返回结果为"Hello"。LEFT函数返回了源字符串的左边前5个字符作为子字符串。
需要注意的是,如果指定的长度大于等于源字符串的长度,那么LEFT函数将返回源字符串的完整内容。
除了LEFT函数,Oracle还提供了类似的函数,如SUBSTR函数可以用于提取字符串的子串。但是在某些情况下,使用LEFT函数更为简便和直观。
oracle字符串截取方法
oracle字符串截取方法
在Oracle数据库中,可以使用SUBSTR函数来截取字符串。SUBSTR函数用于从一个字符串中截取子字符串。它的语法是:SUBSTR(string, start, [length])。
其中,string是要截取的字符串,start是开始位置,length是可选参数,表示截取字符串的长度。
例如,要从字符串"Hello World"中截取"World",可以使用以下SQL语句:
sql
SELECT SUBSTR('Hello World', 7, 5) FROM dual;
这将返回"World"。
如果要截取从倒数第4个字符开始的子字符串,可以使用负数作为start参数的值。例如,要从字符串"Hello World"中截取从倒数第4个字符开始的子字符串,可以使用以下SQL语句:
sql
SELECT SUBSTR('Hello World', -4) FROM dual;
这将返回"SQL!"。
需要注意的是,Oracle中的字符串索引是从1开始的,而不是从0开始。因此,在SUBSTR函数中,start参数的值应该从1开始计算。
oracle中replace的用法
文章标题:深度解析 Oracle 中 Replace 函数的用法及应用
在 Oracle 数据库中,Replace 函数是一种非常有用的字符串处理函数,它可以帮助我们在字符串中查找并替换指定的子串。今天,我们将深入探讨 Replace 函数的用法及其在实际应用中的价值。
1. Replace 函数的基本语法及参数解析
在 Oracle 数据库中,Replace 函数的基本语法如下:
REPLACE(original_string, search_string, replace_string)
其中,original_string 是要进行替换操作的原始字符串,search_string 是要查找并替换的子串,replace_string 则是要替换的新子串。
2. Replace 函数的应用场景
在实际应用中,Replace 函数可以应用于很多场景,比如:
- 数据清洗:替换原始数据中的特殊字符或错误信息
- 数据转换:根据项目需求,对原始数据进行格式转换和替换
- 功能拓展:在系统开发中,可以使用 Replace 函数实现一些字符串处理的功能
3. 深入案例分析:在实际项目中如何使用 Replace 函数
以一个电商项目为例,我们可以使用 Replace 函数实现对商品描述中的特殊字符进行替换,比如将 & 符号替换为 and,以便在页面上正常显示商品描述。
4. 个人观点及总结
通过对 Replace 函数的深度解析,我深刻认识到它在数据库操作中的重要作用。在实际项目中,合理地运用 Replace 函数可以提高数据处理的效率,同时也能够减少数据处理过程中的错误和异常。
Replace 函数是 Oracle 数据库中一个非常实用的字符串处理函数,它的灵活应用可以帮助我们更好地进行数据处理和系统开发。
通过对 Replace 函数的深入探讨,我们可以更好地理解其用法及应用场景,从而在实际项目中更加灵活地运用这个强大的字符串处理函数。希望本文能对你有所帮助,也欢迎交流和探讨更多关于 Oracle 数据库的知识。Replace 函数是 Oracle 数据库中一个非常有用的字符串处理函数,它可以帮助我们在字符串中查找并替换指定的子串。在数据库操作及系统开发中,Replace 函数的灵活应用可以提高数据处理的效率,同时也能够减少数据处理过程中的错误和异常。本文将在深入解析 Replace 函数的基本语法和参数解析的基础上,进一步探讨其在实际应用中的价值及应用场景。
oracle常用sql函数
oracle常用sql函数
Oracle是一款非常优秀的数据库管理系统,它提供了很多强大的功能与工具,其中最基本而实用的功能就是SQL函数了。下面我们将重点介绍一些常用的Oracle SQL函数,帮助读者更好地了解和掌握这些常用的函数,从而更加有效地处理和管理数据。
一、数值型函数
1. ABS()函数:用于计算数值的绝对值,比如ABS(-10)会返回10。
2. CEIL()函数:用于向上取整,比如CEIL(3.14)会返回4。
3. FLOOR()函数:用于向下取整,比如FLOOR(3.14)会返回3。
4. MOD()函数:用于求模,比如MOD(12,5)会返回2。
5. ROUND()函数:用于四舍五入,比如ROUND(3.49)会返回3,而ROUND(3.51)会返回4。
二、字符型函数
1. CONCAT()函数:用于连接两个字符串,比如CONCAT('hello','world')会返回helloworld。
2. SUBSTR()函数:用于截取字符串,比如SUBSTR('hello',2,3)会返回ell。
3. UPPER()函数:用于将字符串转换成大写,比如UPPER('hello')会返回HELLO。
4. LOWER()函数:用于将字符串转换成小写,比如LOWER('HELLO')会返回hello。
5. TRIM()函数:用于去掉字符串首尾的空格,比如TRIM('
hello ')会返回hello。
三、日期型函数
1. CURRENT_DATE函数:用于获取当前日期,比如SELECT
CURRENT_DATE FROM DUAL会返回当前日期。
2. SYSDATE函数:用于获取系统当前时间,比如SELECT SYSDATE FROM DUAL会返回系统当前时间。
3. TO_CHAR()函数:用于将日期转换成字符型,比如TO_CHAR(SYSDATE,'yyyy-mm-dd')会返回当前日期的年月日格式。
oracle sql截取字符串前几位的方法
oracle sql截取字符串前几位的方法
Oracle SQL提供了多种方法来截取字符串的前几位。以下是几种常见的方法:
1. 使用SUBSTR函数:
SUBSTR函数允许在字符串中选择部分字符。要截取字符串的前几位,可以使用该函数。示例如下:
```
SELECT SUBSTR(column_name, 1, n) AS truncated_string
FROM table_name;
```
在上述示例中,将column_name替换为要截取的列名,table_name替换为表名,n替换为要截取的字符数目。该函数将返回截取后的字符串。
2. 使用LEFT函数:
LEFT函数用于返回字符串的左侧若干字符。可以通过指定字符数目来截取字符串的前几位。示例如下:
```
SELECT LEFT(column_name, n) AS truncated_string
FROM table_name;
```
在上述示例中,将column_name替换为要截取的列名,table_name替换为表名,n替换为要截取的字符数目。该函数将返回截取后的字符串。
3. 使用SUBSTRING函数: SUBSTRING函数与SUBSTR函数类似,也可以用来截取字符串的一部分。示例如下:
```
SELECT SUBSTRING(column_name, 1, n) AS truncated_string
FROM table_name;
```
在上述示例中,将column_name替换为要截取的列名,table_name替换为表名,n替换为要截取的字符数目。该函数将返回截取后的字符串。
请根据具体的需求选择合适的方法来截取字符串的前几位。希望对你有帮助!
oracle的regexp_substr用法
oracle的regexp_substr用法
Oracle中的REGEXP_SUBSTR函数用于从一个字符串中提取匹配一个正则表达式的子字符串。
其基本语法如下:
REGEXP_SUBSTR(source_string, pattern [,position [,occurrence [,modifier
[,sub_expression]]]])
其中各参数的含义如下:
- source_string:要匹配的源字符串。
- pattern:正则表达式。
- position:可选参数,指定开始搜索的位置,默认为1。
- occurrence:可选参数,指定匹配的第几个结果,默认为1。
- modifier:可选参数,指定匹配模式的修饰符,默认为空。
- sub_expression:可选参数,指定正则表达式中的子表达式,默认为0。
下面是一些REGEXP_SUBSTR函数的用法示例:
1. 提取字符串中的数字:
sql
SELECT REGEXP_SUBSTR('abc123def456', '[[:digit:]]+') AS result FROM
dual;
结果为:123
2. 提取字符串中的第二个数字:
sql
SELECT REGEXP_SUBSTR('abc123def456', '[[:digit:]]+', 1, 2) AS result
FROM dual;
结果为:456
3. 提取字符串中的字母:
sql
SELECT REGEXP_SUBSTR('abc123def456', '[[:alpha:]]+') AS result FROM
dual;
结果为:abc
4. 提取字符串中的子表达式:
sql
SELECT REGEXP_SUBSTR('abc123def456', '([[:alpha:]]+)([[:digit:]]+)', 1, 1,
'', 1) AS result FROM dual;
oracle的right函数
- 1 - oracle的right函数
Oracle的RIGHT函数是字符串函数之一,用于返回指定字符串的右边一定数量的字符。该函数的语法为:RIGHT(string, length),其中string是要截取的字符串,length是要截取的字符数量。例如,如果我们要从字符串'Hello world'中获取最后5个字符,则可以使用以下SQL语句:
SELECT RIGHT('Hello world', 5) FROM dual;
执行该语句后,将返回'world'作为结果。
需要注意的是,如果要截取的字符数量大于字符串本身的长度,则函数将返回整个字符串。另外,该函数仅适用于单字节字符集,对于多字节字符集需要使用SUBSTR函数来截取。
oracle substr函数用法
oracle substr函数用法
在Oracle数据库中,substr函数是一个非常有用的字符串函数。它被用来从一个字符串中提取出一个子字符串,被广泛应用于各种数据操作中。本文将介绍oracle
substr函数的用法、参数以及示例。
一、substr函数的概述
Oracle中的substr函数用于从字符串中提取一个子字符串。它的语法如下所示:
select substr(str, start_position, length) from
table_name;
str:待提取子字符串的字符串。可以是任何数据类型的字符串,包括char、varchar2等类型。
start_position:子字符串的起始位置。该参数是必须的,并且是一个正整数。如果该数字小于1,Oracle将返回NULL。
length:被提取子字符串的长度。该参数是可选的,如果省略,则Oracle返回从start_position到字符串末尾的所有字符。如果指定了length,则提取从start_position开始的长度为length的子字符串。
二、substr函数的参数 substr函数的参数非常简单,只需要两个必填参数即可,而第三个参数是可选的。下面是这些参数的详细说明:
字符串: 被操作的字符串必须是char、nchar、varchar2、nvarchar2、clob、nclob中的其中一种。
起始位置:子字符串的起始位置。必须是一个整数。
子字符串长度:一个可选参数,指定被提取的子字符串的长度。如果省略此参数,则可以提取从起始位置到其余部分的所有字符。
三、substr函数的示例
为了更好地理解与考虑substr函数,下面给出一些示例。
1. 使用substr函数从一个字符串中提取一个子字符串:
SELECT SUBSTR('Oracle substring function', 8)
FROM DUAL;
结果: substring function
oracle截取字符(substr)检索字符位置(instr)示例介绍
oracle截取字符(substr)检索字符位置(instr)⽰例介绍
⼀:理论
oracle 截取字符(substr),检索字符位置(instr) case when then else end语句使⽤ 收藏
常⽤函数:substr和instr1.SUBSTR(string,start_position,[length]) 求⼦字符串,返回字符串
解释:string 元字符串start_position 开始位置(从0开始)
length 可选项,⼦字符串的个数
For example:
substr("ABCDEFG", 0); //返回:ABCDEFG,截取所有字符substr("ABCDEFG", 2); //返回:CDEFG,截取从C开始之后所有字符substr("ABCDEFG", 0, 3); //返回:ABC,截取从A开始3个字符substr("ABCDEFG", 0, 100); //返回:ABCDEFG,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最⼤数量返回。substr("ABCDEFG", -3); //返回:EFG,注意参数-3,为负值时表⽰从尾部开始算起,字符串排列位置不变。
2.INSTR(string,subString,position,ocurrence)查找字符串位置
解释:string:源字符串subString:要查找的⼦字符串
position:查找的开始位置
ocurrence:源字符串中第⼏次出现的⼦字符串
For example:
INSTR('CORPORATE FLOOR','OR', 3, 2)中,源字符串为'CORPORATE FLOOR', ⽬标字符串为'OR',起始位置为3,取第2个匹配项的位置;返回结果
为 14 '
⼆:实际测试
select substr('OR:com.lcs.wc.placeholder.Placeholder:860825',INSTR('OR:com.lcs.wc.placeholder.Placeholder:860825',':', 1, 2)+1,length('OR:com.lcs.wc.placeholder.Placeholder:860825')),INSTR('OR:com.lcs.wc.placeholder.Placeholder:860825',':', 1, 2),length('OR:com.lcs.wc.placeholder.Placeholder:860825') From dual;
