字符函数



 



字符函数的功能主要是进行字符串数据的操作,下面给出几个字符函数:



UPPER( 字符串 | 列):将输入的字符串变为大写返回;



LOWER( 字符串 | 列):将输入的字符串变为小写返回;



INITCAP( 字符串 | 列):开头首字母大写;



LENGTH( 字符串 | 列):求出字符串的长度;



REPLACE( 字符串 | 列):进行替换;



SUBSTR( 字符串 | 列,开始点 [,结束点]):字符串截取;



 



Oracle 之中有一点比较麻烦,即使要验证字符串,也必须编写完整的SQL语句,所以在Oracle数据库之中为了用户查询方便,所以专门提供了一个“dual”的虚拟表。



 



范例:观察转大写的函数
 
  
SELECT UPPER('hello') FROM dual;
 
  
SQL> SELECT UPPER('hello') FROM dual;
 
  
 
   
 
 
  
UPPER
 
  ----- 
   
   
HELLO
   
    
 
   
大写转换的用处:在一般的使用之中,用户输入数据的时候去关心数据本身存放的是大写还小写吗?
   
SELECT * FROM emp WHERE ename='&str';
   
    
 
   
SQL> SELECT * FROM emp WHERE ename='&str';
   
输入 str 的值:  smith
   
原值    1: SELECT * FROM emp WHERE ename='&str'
   
新值    1: SELECT * FROM emp WHERE ename='smith'
   
    
 
   
未选定行
   
    
 
   
SQL> SELECT * FROM emp WHERE ename='&str';
   
输入 str 的值:  SMITH
   
原值    1: SELECT * FROM emp WHERE ename='&str'
   
新值    1: SELECT * FROM emp WHERE ename='SMITH'
   
    
 
   
     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO
   
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
   
      7369 SMITH      CLERK           7902 17-12    月-80            800                    20
   
    
 
   
    
 
   
此时如果输入的是小写,则肯定无法查询出数据,所以这个时候不能要求用户这么多,所以这个时候只能由程序自己去适应,加入一个函数:
   
SELECT * FROM emp WHERE ename=UPPER('&str');
   
    
 
   
SQL> SELECT * FROM emp WHERE ename=UPPER('&str');
   
输入 str 的值:  smith
   
原值    1: SELECT * FROM emp WHERE ename=UPPER('&str')
   
新值    1: SELECT * FROM emp WHERE ename=UPPER('smith')
   
    
 
   
     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO
   
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
   
      7369 SMITH      CLERK           7902 17-12    月-80            800                    20


 


当然以上的“&”的操作属于替代变量的内容,此部分内容不做重点。


 


范例:观察转小写的操作,将所有的雇员姓名按照小写字母返回

SELECT LOWER(ename) FROM emp;

转载于:https://blog.51cto.com/19880614/1087751