电脑技术学习

Oracle函数集锦

dn001

  (二).字符型函数返回字符值(Character Functions Returning Character Values)

  该类函数返回与输入类型相同的类型。

   返回的CHAR类型值长度不超过2000字节;

   返回的VCHAR2类型值长度不超过4000字节;

  如果上述应返回的字符长度超出,oracle并不会报错而是直接截断至最大可支持长度返回。

   返回的CLOB类型值长度不超过4G;

  对于CLOB类型的函数,如果返回值长度超出,oracle不会返回任何错误而是直接抛出错误。

  1、LOWER(c) 将指定字符串内字符变为小写,支持CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB,NCLOB类型

  例如:SELECT LOWER('WhaT is tHis') FROM DUAL;

  2、UPPER(c) 将指定字符串内字符变为大写,支持CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB,NCLOB类型

  例如:SELECT UPPER('WhaT is tHis') FROM DUAL;

 3、LPAD(c1,n[,c2]) 返回指定长度=n的字符串,需要注意的有几点:

   如果n

   如果n>c1.length and c2 is null,以空格从左向右补充字符长度至n并返回;

   如果n>c1.length and c2 is not null,以指定字符c2从左向右补充c1长度至n并返回;

  例如:SELECT LPAD('WhaT is tHis',5),LPAD('WhaT is tHis',25),LPAD('WhaT is tHis',25,'-') FROM DUAL;

  最后大家再猜一猜,如果n<0,结果会怎么样

  4、RPAD(c1,n[,c2]) 返回指定长度=n的字符串,基本与上同,不过补充字符是从右向左方向正好与上相反;

  例如:SELECT RPAD('WhaT is tHis',5),RPAD('WhaT is tHis',25),RPAD('WhaT is tHis',25,'-') FROM DUAL;

  5、TRIM([[LEADING||TRAILING||BOTH] c2 FROM] c1) 哈哈,被俺无敌的形容方式搞晕头了吧,这个地方还是看图更明了一些。

  看起来很复杂,理解起来很简单:

   如果没有指定任何参数则oracle去除c1头尾空格

  例如:SELECT TRIM(' WhaT is tHis ') FROM DUAL;

   如果指定了c2参数,则oracle去掉c1头尾c2(这个建议细致测试,有多种不同情形的哟)

  例如:SELECT TRIM('W' FROM 'WhaT is tHis w W') FROM DUAL;

   如果指定了leading参数则会去掉c1头部c2

  例如:SELECT TRIM(leading 'W' FROM 'WhaT is tHis w W') FROM DUAL;

   如果指定了trailing参数则会去掉c1尾部c2

  例如:SELECT TRIM(trailing 'W' FROM 'WhaT is tHis w W') FROM DUAL;

   如果指定了both参数则会去掉c1头尾c2(跟不指定有区别吗?没区别!)

  例如:SELECT TRIM(both 'W' FROM 'WhaT is tHis w W') FROM DUAL;

  注意:c2长度=1