电脑技术学习

Oracle函数集锦

dn001
  例如:SELECT CAST('1101' AS NUMBER(5)) FROM DUAL;

  3、CHARTOROWID(c) 将字符串转换为rowid类型

  例如:SELECT CHARTOROWID('A003D1ABBEFAABSAA0') FROM DUAL;

  4、ROWIDTOCHAR(rowid) 转换rowid值为varchar2类型。返回串长度为18个字节。

  例如:SELECT ROWIDTOCHAR(rowid) FROM DUAL;

  5、TO_MULTI_BYTE(c) 将指定字符转换为全角并返回char类型字串

  例如:SELECT TO_MULTI_BYTE('ABC abc 中华') FROM DUAL;

  6、TO_SINGLE_BYTE(c) 将指定字符转换为半角并返回char类型字串

  例如:SELECT TO_SINGLE_BYTE('ABC abc中华') FROM DUAL;

  (六).其它辅助函数(Miscellaneous Single-Row Functions)

  1、COALESCE(n1,n2,....n) 返回序列中的第一个非空值

  例如:SELECT COALESCE(null,5,6,null,9) FROM DUAL;

  2、DUMP(exp[,fmt[,start[,length]]])

  dump是个功能非常强悍的函数,对于深入了解oracle存储的人而言相当有用。所以对于我们这些仅仅只是应用的人而言就不知道能将其应用于何处了。此处仅介绍用法,不对其功能做深入分析。

  如上所示,dump拥有不少参数。其本质是以指定格式,返回指定长度的exp的内部表示形式的varchar2值。fmt含4种格式:8||10||16||17,分别表示8进制,10进制,16进制和单字符,默认为10进制。start参数表示开始位置,length表示以,分隔的字串数。

  例如:SELECT DUMP('abcdefg',17,2,4) FROM DUAL;

  3、EMPTY_BLOB,EMPTY_CLOB 这两个函数都是返回空lob类型,通常被用于insert和update等语句以初始化lob列,或者将其置为空。EMPTY表示LOB已经被初始化,只不过还没有用来存储数据。

  4、NLS_CHARSET_NAME(n) 返回指定数值对应的字符集名称。

  例如:SELECT NLS_CHARSET_NAME(1) FROM DUAL;

  5、NLS_CHARSET_ID(c) 返回指定字符对应的字符集id。

  例如:SELECT NLS_CHARSET_ID('US7ASCII') FROM DUAL;

  6、NLS_CHARSET_DECL_LEN(n1,n2) 返回一个NCHAR值的声明宽度(以字符为单位).n1是该值以字节为单位的长度,n2是该值的字符集ID

  例如:SELECT NLS_CHARSET_DECL_LEN(100, nls_charset_id('US7ASCII')) FROM DUAL;

  7、SYS_EXTRACT_UTC(timestamp) 返回标准通用时间即格林威治时间。

  例如:SELECT SYS_EXTRACT_UTC(current_timestamp) FROM DUAL;

  8、SYS_TYPEID(object_type) 返回对象类型对应的id。

  例如:这个这个,没有建立过自定义对象,咋做示例?

  9、UID 返回一个唯一标识当前数据库用户的整数。

  例如:SELECT UID FROM DUAL;

  10、USER 返回当前session用户

  例如:SELECT USER FROM DUAL;

  11、USERENV(c) 该函数用来返回当前session的信息,据oracle文档的说明,userenv是为了保持向下兼容的遗留函数。oracle公司推荐你使用sys_context函数调用USERENV命名空间来获取相关信息,所以大家了解下就行了。

  例如:SELECT USERENV('LANGUAGE') FROM DUAL;

  12、VSIZE(c) 返回c的字节数。

  例如:SELECT VSIZE('abc中华') FROM DUAL;