《Oracle Database编程指南》13-01:字符函数(Character Functions)

1、返回字符值的字符函数

返回字符值的字符函数(Character Functions)返回下列数据类型的值,除非另有说明:

  • 如果输入参数是CHAR或VARCHAR2,那么返回的值是VARCHAR2。
  • 如果输入参数是NCHAR或NVARCHAR2,那么返回的值是NVARCHAR2。

函数返回值的长度受返回数据类型的最大长度限制。

  • 对于返回CHAR或VARCHAR2的函数,如果返回值的长度超过了限制,那么Oracle数据库会截断它并返回结果,而不会出现错误消息。
  • 对于返回CLOB值的函数,如果返回值的长度超过了限制,那么Oracle将抛出一个错误,并且不返回任何数据。

返回字符值的字符函数如下:

  • CHR
  • CONCAT
  • INITCAP
  • LOWER
  • LPAD
  • LTRIM
  • NCHR
  • NLS_INITCAP
  • NLS_LOWER
  • NLS_UPPER
  • NLSSORT
  • REGEXP_REPLACE
  • REGEXP_SUBSTR
  • REPLACE
  • RPAD
  • RTRIM
  • SOUNDEX
  • SUBSTR
  • TRANSLATE
  • TRANSLATE … USING
  • TRIM
  • UPPER

2、返回数字值的字符函数

返回数字值的字符函数可以接受任何字符数据类型作为其参数。

返回数字值的字符函数是:

ASCII
INSTR
LENGTH
REGEXP_COUNT
REGEXP_INSTR

3、案例代码


/*
主题:字符函数
作者:AT阿宝哥, [email protected]
日期:2016年9月18日
说明:

注意:
    
*/
-------------------------------------------------------------------------------

SELECT  *  FROM  emp;

-------------------------------------------------------------------------------
--小写转换
SELECT  lower('ORACLE') FROM  dual;


select  job ,lower(job) from  emp;
SELECT  empno,ename,lower(ename) AS lowerename ,sal  FROM emp;

-------------------------------------------------------------------------------
--大写转换
SELECT  upper('oracle') FROM  dual;


INSERT INTO  emp  VALUES(8000,'tom','CLERK','7902','20-2月 -81',900,100,10);
SELECT  empno,ename,upper(ename) AS upperename ,sal  FROM emp;
-------------------------------------------------------------------------------
--首字母大写
SELECT  initcap('oracle') FROM  dual;

SELECT  empno,ename,initcap(ename) AS initcapename ,sal  FROM emp;

-------------------------------------------------------------------------------
--大小写转换后进行值比较
SELECT * FROM EMP ;
SELECT * FROM EMP WHERE ENAME = 'smith';
SELECT * FROM EMP WHERE Lower(ENAME) = 'smith';

SELECT * FROM EMP WHERE ENAME Like 's%';
SELECT * FROM EMP WHERE Lower(ENAME) Like 's%';

-------------------------------------------------------------------------------
SELECT  concat('Hello', 'World')  FROM  dual; --字符串连接
SELECT  substr('HelloWorld', 6 , 10)  FROM  dual; --字符串截取函数/子字符串函数
SELECT  LENGTH('HelloWorld')  FROM  dual;--求字符串长度
SELECT  instr('HelloWorld', 'W')  FROM  dual;--求子字符串在源字符串中的起始位置
SELECT  lpad('Hello',10,'*')  FROM  dual; --左补齐
SELECT  rpad('Hello', 10, '*')  FROM  dual; --右补齐
SELECT  TRIM('-' FROM '-HelloWorld-')  FROM  Dual;--修剪函数,只对首尾起作用;
SELECT  REPLACE ('1#1#1#' , '#' ,'*')  FROM  dual;--替换函数
SELECT  REPLACE ('1#1#1#' , '#' )  FROM  dual;--前两个参数强制,最后一个省略后将执行从源字符串删除搜索项目的操作。

--举例
SELECT * FROM EMP WHERE length(ENAME) <  5;

-------------------------------------------------------------------------------

发布了28 篇原创文章 · 获赞 28 · 访问量 4559

猜你喜欢

转载自blog.csdn.net/goldentec/article/details/104762919
今日推荐