`
z7swf
  • 浏览: 185744 次
社区版块
存档分类
最新评论

Oracle内置函数--字符函数

阅读更多
    1、ASCII()和CHR()
sql 代码
 
  1. DECLARE  
  2.     V_VARCH VARCHAR2(5) :='X';  
  3. BEGIN  
  4.     --返回'X'的ASCII码,输出88   
  5.     DBMS_OUTPUT.put_line(ASCII(V_VARCH));  
  6.     --返回ASCII码为88的字符,输出‘X’   
  7.     DBMS_OUTPUT.put_line(CHR(88));  
  8. END;  
   
    2、CONCAT()拼接字符
sql 代码
 
  1. DECLARE    
  2.     V_VARCH_FULLNAME VARCHAR2(50);    
  3. BEGIN    
  4.     SELECT CONCAT(C.first_name,C.last_name)    
  5.     INTO V_VARCH_FULLNAME    
  6.     FROM CUSTOMERS C    
  7.     WHERE C.customer_id = 1;    
  8.     --返回customer_id=1的消费者的全名     
  9.     DBMS_OUTPUT.put_line(V_VARCH_FULLNAME);    
  10.     --单独字符串操作   
  11.     V_VARCH_FULLNAME :=CONCAT('X','Y');  
  12.     DBMS_OUTPUT.put_line(V_VARCH_FULLNAME);    
  13. END;    

    CONCAT(X,Y)函数的作用是将Y列的值拼接在X列值的后面。类似“||”的功能
sql 代码
 
  1. SELECT C.first_name ||' ' || C.last_name AS FULLNAME  
  2. FROM CUSTOMERS C  
  3. WHERE C.customer_id=1;  
   
    3、INITCAP()   将每个单词的首字母转换为大写。
sql 代码
 
  1. DECLARE    
  2.     V_VARCH_RETURN VARCHAR2(50);    
  3. BEGIN    
  4.     SELECT INITCAP(P.description)    
  5.     INTO V_VARCH_RETURN    
  6.     FROM PRODUCTS P    
  7.     WHERE P.product_id = 1;    
  8.     --返回product_id=1的产品信息。    
  9.     --输出:A Description Of Modern Science     
  10.     --原数据为:A description of modern science     
  11.     DBMS_OUTPUT.put_line(V_VARCH_RETURN);    
  12.     --对字符串进行操作   
  13.     V_VARCH_RETURN := INITCAP('A description of modern science');   
  14.     --输出结果一致   
  15.     DBMS_OUTPUT.put_line(V_VARCH_RETURN);   
  16. END;    

    4、INSTR(x,find_string[,start][,occurrence])函数用于在x中查找find_string,返回find_string的所在位置。
sql 代码
 
  1. DECLARE  
  2.     V_INT_INDEX NUMBER;  
  3. BEGIN  
  4.     --在AAA中查找‘A’,从第1个字符开始找,返回第2次出现的位置   
  5.     V_INT_INDEX := INSTR('AAA','A',1,2);  
  6.     DBMS_OUTPUT.put_line(V_INT_INDEX);  
  7.     --在NAME中查找‘Science’,缺省从第一位开始找,返回第一次出现的位置。   
  8.     SELECT INSTR(P.name,'Science')  
  9.     INTO V_INT_INDEX  
  10.     FROM PRODUCTS P  
  11.     WHERE P.product_id = 1;  
  12.     DBMS_OUTPUT.put_line(V_INT_INDEX);  
  13. END;  

    5、LENGTH(x)返回字符串x的长度
sql 代码
 
  1. DECLARE    
  2.     V_VARCH_RETURN NUMBER;    
  3. BEGIN    
  4.     V_VARCH_RETURN :=LENGTH('KOOK');  
  5.     --输出4   
  6.     DBMS_OUTPUT.put_line(V_VARCH_RETURN);    
  7. END;    

    6、LOWER()和UPPER()完成大小写转换
sql 代码
 
  1. DECLARE    
  2.     V_VARCH_RETURN VARCHAR2(10) :='KOOK';    
  3. BEGIN    
  4.     --大写转小写   
  5.     DBMS_OUTPUT.put_line(LOWER(V_VARCH_RETURN));    
  6.     --小写转大写  
  7.     DBMS_OUTPUT.put_line(UPPER(V_VARCH_RETURN));   
  8. END;    

    7、LPAD()和RPAD()
sql 代码
 
  1. DECLARE    
  2.     V_VARCH_RETURN VARCHAR2(10) :='KOOK';    
  3. BEGIN    
  4.     --用左边填补空格,凑足8个字符   
  5.     DBMS_OUTPUT.put_line(LPAD(V_VARCH_RETURN,8));  
  6.     --用左边填补‘X’,凑足8个字符   
  7.     DBMS_OUTPUT.put_line(LPAD(V_VARCH_RETURN,8,'X'));    
  8.     --用右边填补空格,凑足8个字符   
  9.     DBMS_OUTPUT.put_line(RPAD(V_VARCH_RETURN,8));    
  10.     --用右边填补‘X’,凑足8个字符   
  11.     DBMS_OUTPUT.put_line(RPAD(V_VARCH_RETURN,8,'X'));    
  12.       
  13. END;   
    还可以对数字运用该函数
sql 代码
 
  1. SELECT RPAD(P.name,30,'.'),LPAD(P.price,8,'*+')  
  2. FROM PRODUCTS P  
  3. WHERE P.product_id < 4;  
    PRICE列为NUMBER类型。

    8、LTRIM()、RTRIM()和TRIM()
    LTRIM(x[,trim_string])函数如果省略trim_string参数表示从x的左边截去空格,否则从x的左边截去trim_string部分。RTRIM表示从右边做相同的动作,TRIM表示从两边做相同的动作,但是使用上和另外两个有点不同,具体参考下面的例子:
sql 代码
 
  1. DECLARE    
  2.     V_VARCH_RETURN VARCHAR2(50):='KOOK';    
  3. BEGIN    
  4.     --从左边截去‘K’   
  5.     DBMS_OUTPUT.put_line(LTRIM(V_VARCH_RETURN,'K'));    
  6.     --从右边截去‘K’   
  7.     DBMS_OUTPUT.put_line(RTRIM(V_VARCH_RETURN,'K'));   
  8.     --从两边截去‘K’   
  9.     DBMS_OUTPUT.put_line(TRIM('K' FROM 'KOOK'));   
  10.     --从两边截去空格   
  11.     DBMS_OUTPUT.put_line(TRIM(' ' FROM ' KOOK '));   
  12.     DBMS_OUTPUT.put_line(TRIM(' KOOK '));  
  13. END;    

    9、NVL()和NVL2()
       NVL(x,value)如果x为NULL,就返回value,否则返回x。
       NVL2(x,value1,value2)如果x不为NULL,返回value2,否则返回value2。
sql 代码
 
  1. DECLARE    
  2.     V_VARCH_RETURN VARCHAR2(50):='KOOK';    
  3. BEGIN    
  4.     V_VARCH_RETURN := NVL(NULL,'HAVE NO VALUE');   
  5.     DBMS_OUTPUT.put_line(V_VARCH_RETURN);  
  6.       
  7.     SELECT NVL2(C.phone,C.phone,'UNKNOW')  
  8.     INTO V_VARCH_RETURN  
  9.     FROM CUSTOMERS C  
  10.     WHERE C.customer_id = 5;  
  11.     DBMS_OUTPUT.put_line(V_VARCH_RETURN);  
  12.       
  13.     --无法使用 NVL2直接操作,下面语句报错!   
  14.     --V_VARCH_RETURN := NVL2('XXX','HAVE VALUE','HAVE NO VALUE');  
  15.     --V_VARCH_RETURN := NVL2(NULL,'HAVE VALUE','HAVE NO VALUE');  
  16.     --DBMS_OUTPUT.put_line(V_VARCH_RETURN);  
  17.       
  18. END;    

    10、REPLACE()函数
       REPLACE(X,STR1,STR2)在X中找到STR1,并将其换成STR2。
sql 代码
 
  1. DECLARE    
  2.     V_VARCH_RETURN VARCHAR2(50):='KOOK';    
  3. BEGIN    
  4.     --输出‘KEEK’   
  5.     DBMS_OUTPUT.put_line(REPLACE(V_VARCH_RETURN,'OO','EE'));  
  6. END;    

    11、SUBSTR()函数
       SUNSTR(X,START[,LENGTH])用于从X中取得从START位置开始的一个子字符串,还可以使用可选参数LENGTH指定子字符串的长度。省略LENGTH表示从START开始一直到最后一个字符。
sql 代码
 
  1. DECLARE    
  2.     V_VARCH_RETURN VARCHAR2(50):='KOOK';    
  3. BEGIN    
  4.     --从第二个字符开始,一直取到末尾,输出 ‘OOK’   
  5.     DBMS_OUTPUT.put_line(SUBSTR(V_VARCH_RETURN,2));  
  6.     --从第二个字符开始,取两个字符长度,输出‘OO’   
  7.     DBMS_OUTPUT.put_line(SUBSTR(V_VARCH_RETURN,2,2));  
  8. END;    

    12、SOUNDEX()函数
       SOUNDEX(X)函数用于获得包含X发音的一个字符串,该函数用于对于英文拼写不同但发音相似的单词间的比较。
sql 代码
 
  1. DECLARE    
  2.     V_VARCH_A VARCHAR2(50):='WHITE';    
  3.     V_VARCH_B VARCHAR2(50):='WHYTE';   
  4.     V_VARCH_C VARCHAR2(50):='KOOK';   
  5. BEGIN    
  6.     IF SOUNDEX(V_VARCH_A)=SOUNDEX(V_VARCH_C) THEN  
  7.         DBMS_OUTPUT.put_line('A SOUND LIKE C');  
  8.     ELSIF SOUNDEX(V_VARCH_A)=SOUNDEX(V_VARCH_B) THEN  
  9.         --正确输出结果   
  10.         DBMS_OUTPUT.put_line('A SOUND LIKE B');  
  11.     ELSIF SOUNDEX(V_VARCH_C)=SOUNDEX(V_VARCH_B) THEN  
  12.         DBMS_OUTPUT.put_line('C SOUND LIKE B');  
  13.     ELSE  
  14.         DBMS_OUTPUT.put_line('NO RESULT');  
  15.     END IF;  
  16. END;    
分享到:
评论

相关推荐

    oracle函数大全-数字-字符-日期-聚合函数

    接着是字符函数,它们在处理字符串时非常有用。`SUBSTR()`函数用于提取字符串的一部分,`LENGTH()`函数返回字符串的长度,`UPPER()`和`LOWER()`分别用于将字符串转换为大写和小写。`REPLACE()`函数可替换字符串中的...

    oracle内置函数大全

    Oracle数据库是世界上最广泛使用的数据库系统之一,其内置函数是实现高效数据处理的关键工具。这篇文档“oracle内置函数大全”提供了一个全面的参考,适合数据库管理员、开发人员以及初学者使用。下面将详细介绍...

    Oracle内置SQL函数-分类整理大全

    ### Oracle内置SQL函数—字符函数分类整理 #### 一、引言 在Oracle数据库中,字符函数是非常重要的组成部分,主要用于处理字符串数据。本文档详细介绍了Oracle内置的一些常用字符函数及其用法,帮助用户更好地理解...

    Oracle内置SQL函数-分类整理大全.doc

    ### Oracle内置SQL函数-分类整理大全 #### F.1 字符函数——返回字符值 **1.1.1 CHR** - **语法**: `CHR(x)` - **功能**: 返回在数据库字符集中与`x`拥有等价数值的字符。`CHR`和`ASCII`是一对反函数,即经过`CHR...

    Oracle内置函数大全

    Oracle内置函数是数据库管理系统Oracle 8i中的一个重要组成部分,这些函数极大地丰富了SQL查询和数据处理的能力。在Oracle中,日期格式和数字格式的说明符是处理数据的关键工具,它们决定了如何显示和解析日期和数字...

    oracle 内置函数大全

    Oracle内置函数是其强大功能的关键组成部分,这些函数极大地丰富了SQL语言的表达能力,使得数据处理和查询更为便捷高效。以下是对Oracle内置函数的详细概述: 1. **数学函数**: - `ABS(x)`:返回x的绝对值。 - `...

    ORACLE内置函数大全

    Oracle数据库系统提供了丰富的内置函数,这些函数极大地增强了SQL查询的能力,使得数据处理更加灵活和高效。以下是关于Oracle内置函数的一些详细说明: 1. ASCII函数:ASCII函数返回与给定字符对应的十进制数字。...

    Oracle内置SQL函数-分类整理大全

    本文将深入探讨Oracle内置的SQL函数,这些函数极大地丰富了数据查询、处理和分析的能力。 一、数学函数 Oracle提供了丰富的数学函数,如ROUND、TRUNC、MOD、SQRT等。ROUND用于四舍五入,例如ROUND(123.456, 2)将...

    Oracle 内置函数大全

    Oracle数据库系统提供了丰富的内置函数,这些函数在处理SQL查询、数据操作和数据分析中扮演着重要角色。本篇文章将深入探讨Oracle内置函数的一些关键类别,包括数字格式元素和日期格式元素,帮助用户更好地理解和...

    oracle 内置函数

    在Oracle中,内置函数大致可以分为数学函数、字符串函数、日期时间函数、转换函数、系统信息函数和条件判断函数等几大类。 1. **数学函数**: - ABS:返回一个数的绝对值。 - CEIL:向上取整,返回大于或等于指定...

    Oracle SQL 内置函数大全

    Oracle SQL 内置函数大全 SQL中的单记录函数 给出整数,返回对应的字符 连接两个字符串 增加或减去月份 用于对查询到的结果进行排序输出

    Oracle内置函数大全.rar

    Oracle内置函数可以分为多种类型,包括算术函数、字符串函数、日期时间函数、转换函数、系统信息函数、控制结构函数等。这些函数在SQL查询、数据处理和存储过程编写中扮演着关键角色。 1. **算术函数**:例如`+`、`...

    oracle内置函数学习

    Oracle内置函数是数据库管理系统Oracle中不可或缺的一部分,它们用于执行各种数据处理任务,包括数学运算、字符串操作、日期处理等。这篇博文将深入探讨Oracle内置函数的学习,帮助你更好地理解和运用这些功能强大的...

    Oracle内置SQL函数-分类整理大全(doc)

    本文将详细介绍Oracle内置SQL函数中的字符函数部分,包括它们的功能、语法以及应用场景。 #### 二、字符函数 字符函数主要用于处理文本数据,例如修改字符串、转换大小写、查找特定字符等。以下是一些常用的字符...

    Oracle函数大全-详细介绍.rar

    在"Oracle函数大全-详细介绍.rar"这个压缩包中,包含了对Oracle数据库中各种函数的详细解析,包括分析函数、单值函数和聚合函数等。 首先,让我们来看看单值函数。单值函数接受一个或多个输入值,返回一个新的单一...

Global site tag (gtag.js) - Google Analytics