字符函数

 

字符函数的功能主要是进行字符串数据的操作,下面给出几个字符函数:
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;
本文转自CUUG官网。