oracle中执⾏字符串sql语句,Oracle SQL 字符串操作
这些函数全都接收的是字符族类型的参数(CHR除外)并且返回字符值.
除了特别说明的之外,这些函数⼤部分返回VARCHAR2类型的数值.
字符函数的返回类型所受的限制和基本数据库类型所受的限制是相同的。
字符型变量存储的最⼤值:
VARCHAR2数值被限制为2000字符(ORACLE
8中为4000字符)
CHAR数值被限制为255字符(在ORACLE8中是2000)
long类型为2GB
Clob类型为4GB
1、CHR
语法: chr(x)
功能:返回在数据库字符集中与X拥有等价数值的字符。CHR和ASCII是⼀对反函数。经过CHR转换后的字符再经过ASCII转换⼜得到了原来的字
符。
使⽤位置:过程性语句和SQL语句。
2、CONCAT
语法:
CONCAT(string1,string2)
功能:返回string1,并且在后⾯连接string2。
使⽤位置:过程性语句和SQL语句。
3、INITCAP
语法:INITCAP(string)
功能:返回字符串的每个单词的第⼀个字母⼤写⽽单词中的其他字母⼩写的string。单词是⽤.空格或给字母数字字符进⾏分隔。不是字母的
字符不变动。
使⽤位置:过程性语句和SQL语句。
4、LTRIM
语法:LTRIM(string1,string2)
功能:返回删除从左边算起出现在string2中的字符的string1。String2被缺省设置为单个的空格。数据库将扫描string1,从最左边开始。当
遇到不在string2中的第⼀个字符,结果就被返回了。LTRIM的⾏为⽅式与RTRIM很相似。
使⽤位置:过程性语句和SQL语句。
5、NLS_INITCAP
语法:NLS_INITCAP(string[,nlsparams])
功能:返回字符串每个单词第⼀个字母⼤写⽽单词中的其他字母⼩写的string,nlsparams
指定了不同于该会话缺省值的不同排序序列。如果不指定参数,则功能和INITCAP相同。Nlsparams可以使⽤的形式是:
'NLS_SORT=sort'
这⾥sort制订了⼀个语⾔排序序列。
使⽤位置:过程性语句和SQL语句。
6、NLS_LOWER
语法:NLS_LOWER(string[,nlsparams])
功能:返回字符串中的所有字母都是⼩写形式的string。不是字母的字符不变。
Nlsparams参数的形式与⽤途和NLS_INITCAP中的nlsparams参数是相同的。如果nlsparams没有被包含,那么NLS_LOWER所作的处理和
LOWER相同。
使⽤位置;过程性语句和SQL语句。
7、NLS_UPPER
语法:nls_upper(string[,nlsparams])
功能:返回字符串中的所有字母都是⼤写的形式的string。不是字母的字符不变。nlsparams参数的形式与⽤途和NLS_INITCAP中的相同。如果
没有设定参数,则NLS_UPPER功能和UPPER相同。
使⽤位置:过程性语句和SQL语句。
8、REPLACE
语法:REPLACE(string,search_str[,replace_str])
功能:把string中的所有的⼦字符串search_str⽤可选的replace_str替换,如果没有指定replace_str,所有的string中的⼦字符串
search_str都将被删除。REPLACE是TRANSLATE所提供的功能的⼀个⼦集。
使⽤位置:过程性语句和SQL语句。
9、RPAD
语法:RPAD(string1,x[,string2])
功能:返回在X字符长度的位置上插⼊⼀个string2中的字符的string1。如果string2的长度要⽐X字符少,就按照需要进⾏复制。如果string2
多于X字符,则仅string1前⾯的X各字符被使⽤。如果没有指定string2,那么使⽤空格进⾏填充。X是使⽤显⽰长度可以⽐字符串的实际长度
要长。RPAD的⾏为⽅式与LPAD很相似,除了它是在右边⽽不是在左边进⾏填充。
使⽤位置:过程性语句和SQL语句。
10、RTRIM
语法:
RTRIM(string1,[,string2])
功能:
返回删除从右边算起出现在string1中出现的字符string2.
string2被缺省设置为单个的空格.数据库将扫描string1,从右边开始.当遇
到不在string2中的第⼀个字符,结果就被返回了RTRIM的⾏为⽅式与LTRIM很相似.
使⽤位置:过程性语句和SQL语句。
11、SOUNDEX
语法: SOUNDEX(string)
功能:
返回string的声⾳表⽰形式.这对于⽐较两个拼写不同但是发⾳类似的单词⽽⾔很有帮助.
使⽤位置:过程性语句和SQL语句。
12、SUBSTR
语法:
SUBSTR(string,a[,b])
功能:
返回从字母为值a开始b个字符长的string的⼀个⼦字符串.如果a是0,那么它就被认为从第⼀个字符开始.如果是正数,返回字符是从左
边向右边进⾏计算的.如果b是负数,那么返回的字符是从string的末尾开始从右向左进⾏计算的.如果b不存在,那么它将缺省的设置为整个字符串.如果b⼩于1,那么将返回NULL.如果a或b使⽤了浮点数,那么该数值将在处理进⾏以前⾸先被却为⼀个整数.
使⽤位置:过程性语句和SQL语句。
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.
使⽤位置:过程性语句和SQL语句。
14、UPPER
语法: UPPER(string)
功能:
返回⼤写的string.不是字母的字符不变.如果string是CHAR数据类型的,那么结果也是CHAR类型的.如果string是VARCHAR2类型的,那么结果也是VARCHAR2类型的.
使⽤位置: 过程性语句和SQL语句。
字符函数——返回数字
这些函数接受字符参数回数字结果.参数可以是CHAR或者是VARCHAR2类型的.尽管实际下许多结果都是整数值,但是返回结果都是简单的NUMBER
类型的,没有定义任何的精度或刻度范围.
16、ASCII
语法: ASCII(string)
功能:
数据库字符集返回string的第⼀个字节的⼗进制表⽰.请注意该函数仍然称作为ASCII.尽管许多字符集不是7位ASCII.CHR和ASCII是互为
相反的函数.CHR得到给定字符编码的响应字符.
ASCII得到给定字符的字符编码.
使⽤位置: 过程性语句和SQL语句。
17、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的取值是多少.
使⽤位置: 过程性语句和SQL语句。
18、INSTRB
语法: INSTRB(string1,
string2[a,[b]])
功能:
和INSTR相同,只是操作的对参数字符使⽤的位置的是字节.
使⽤位置: 过程性语句和SQL语句。
19、LENGTH
语法: LENGTH(string)
功能:
返回string的字节单位的长度.CHAR数值是填充空格类型的,如果string由数据类型CHAR,它的结尾的空格都被计算到字符串长度中间.
如果string是NULL,返回结果是NULL,⽽不是0.
使⽤位置: 过程性语句和SQL语句。
20、LENGTHB
语法: LENGTHB(string)
功能:
返回以字节为单位的string的长度.对于单字节字符集LENGTHB和LENGTH是⼀样的.
使⽤位置: 过程性语句和SQL语句。
21、NLSSORT
字符串比较函数实现语法:
NLSSORT(string[,nlsparams])
功能:
得到⽤于排序string的字符串字节.所有的数值都被转换为字节字符串,这样在不同数据库之间就保持了⼀致性. Nlsparams的作⽤和
NLS_INITCAP中的相同.如果忽略参数,会话使⽤缺省排序.
使⽤位置: 过程性语句和SQL语句。
select
_node,0,_node,'/',-1)) from cm_node
t;
CREATE OR REPLACE PACKAGE
PKG_STR_CONV AS
--判断输⼊的字符串是否全部都是数字
Function isnumber(str varchar2 )
RETURN NUMBER;
--判断输⼊的字符串是否全部是汉字
Function ischinese(str varchar2 )
RETURN VARCHAR2;
--保留字符串中全部数字
FUNCTION get_number(theStr IN
VARCHAR2 DEFAULT NULL) RETURN VARCHAR2;
--去掉字符串中的开头和结尾的⾮数字字符
FUNCTION start_end_number(theStr
IN VARCHAR2 DEFAULT NULL) RETURN VARCHAR2;
--将字符串中所有的⾮汉字字符去掉
FUNCTION trim_chars (theStr IN
VARCHAR2) RETURN VARCHAR2;
--取出字符串中第⼀个汉字的位置
FUNCTION count_chars (theStr IN
VARCHAR2) RETURN VARCHAR2;
--统计⼦字符串在主字符串中出现的频率
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论