ORACLE常見問題1000問(之七)

ORACLE內部函數篇

   255. CHARTOROWID(CHAR)

   將包含外部語法ROWID的CHAR或VARCHAR2數值轉換爲內部的二進制語法,參數CHAR必須是包含外部語法的ROWID的18字符的字符串.

   SELECT NAME FROM BSEMPMS WHERE ROWID=CHARTOROWID('AAAAfZAABAAACp8AAO');

   NAME : LEIXUE

   256. CONVERT(CHAR,DEST_CHAR_SET,SOURCE_CHAR_SET)

   CONVERT將字符串CHAR中的字符從SOURCE_CHAR_SET標識的字符集轉換爲由DEST_CHAR_SET標識的 
   字符集

   SELECT CONVERT('GroB','US7ASCII','WE8HP') 'CONVERSION' FROM PUBS;

   CONVERSION: Gross

   257. HEXTORAW(CHAR)

   將包含十六進制的CHAR轉換爲一個RAW數值.

   INSERT INTO BSEMPMS(RAW_COLUMN) SELECT HEXTORAW('7D') FROM TEST;

   258. RAWTOHEX(RAW)

   將RAW數值轉換爲一個包含十六進制的CHAR值.

   SELECT RAWTOHEX(RAW_COLUMN) 'CONVERSION' FROM BSEMPMS;

   CONVERSION: 7D

   259. ROWIDTOCHAR(ROWID)

   將一個ROWID數值轉換爲VARCHAR2數據類型.

   SELECT ROWID FROM BSEMPMS WHERE ROWIDTOCHAR(ROWID) LIKE '%BR1AAB%';

   260. TO_MULTI_BYTE(CHAR)

   將CHAR中的單字節轉換爲等價的多字節字符.

   SELECT TO_MULTI_BYTE('ASFDFD') FROM TEST;

   261. TO_SINGLE_BYTE(CHAR)

   將CHAR中的多字節轉換爲等價的單字節字符。

   SELECT TO_SINGLE_BYTE('ASFDFD') FROM TEST;

   262. TRANSLATE USING(TEXT USING {CHAR_CS|NCHAR_CS})

   將文本TEXT按照指定的轉換方式轉換成數據庫字符集和民族字符集。

   其中TEXT是待轉換的。

   USING CHAR_CS參數轉換TEXT爲數據庫字符集,輸出數據類型是VARCHAR2.

   USING NCHAR_CS參數轉換TEXT爲數據庫字符集,輸出數據類型是NVARCHAR2.

   CREATE TABLE TEST(CHAR_COL CHAR(20),NCHAR_COL NCHAR(20));

   INSERT INTO TEST valueS('HI,N'BYE');

   SELECT * FROM TEST;

   263. DUMP(EXPR,RETURN_FORMAT,START_POSITION,LENGTH)

   返回一個包含數據類型代碼,字節長度等內部表示信息的VARCHAR2值.返回結果是當前數據庫字符集,數據類型按照下面規定的內部數據類型的編碼作爲一個數字進行返回:

   代碼 數據類型
   0 VARCHAR2
   1 NUMBER
   8 LONG
   12 DATE
   23 RAW
   24 LONG RAW
   69 ROWID
   96 CHAR
   106 MSSLABEL

   參數RETUEN_FORMAT指定按照下面的基數表示返回的數值.

   RETURN_FORMAT RESULT
   8 8進制
   10 10進制
   16 16進制
   17 單字符表示

   如果參數RETURN_FORMAT沒有指定,則按十進制表示返回.

   如果參數START_POSITION和LENGTH被指定,則從START_POSITION開始的長爲LENGTH的字節將被返回,缺省是返回整數表示.

   SELECT DUMP('ABC',1016) FROM TEST;

   select dump(ename,8,3,2) 'example' from emp where name='ccbzzp';

   264. empty_b|clob()

   返回一個空的LOB定位符,用在初始化LOB變量,或用在INSERT及UPDATE聲明去初始化LOB列或將其屬性置爲空.

   INSERT INTO TABLE1 valueS(EMPTY_BLOB());

   UPDATE TABLE1 SET CLOB_COL=EMPTY_BLOB();

   265. BFILENAME('DIRECTORY','FILENAME')

   返回一個BFILE定位符,相關的二進制LOB物理文件在服務器的文件系統上.目錄DIRECTORY是指在服務器的文件系統上實際搜索路徑全名的別名. FILENAME是指服務器的文件系統的文件名.

   INSERT INTO FILE_TAB valueS(BFILENAME('LOB_DIR','IMAGE1.GIF'));

   266. GREATEST(EXPR,EXPR,...)

   GREATEST返回參數的最大值.

   SELECT GREATEST('HARRY','HARRIOT','HAROLD') 'SAMPLE' FROM TABLE1;

   267. LEAST(EXPR,EXPR,...)

   LEAST返回參數的最小值.

   SELECT LEAST('HARRY','HARRIOT','HAROLD') 'SAMPLE' FROM TABLE1;

   268. NLS_CHARSET_DECL_LEN(BYTECNT,CSID)

   返回一個NCHAR列的寬度.

   SELECT NLS_CHARSET_DECL_LEN(200,NLS_CHARSET_ID('JA16EEFDFDF')) FROM TABLE1;

   269. NLS_CHARSET_ID(TEXT)

   返回相應於NLS字符集名字的NLS字符集ID數.

   SELECT NLS_CHARSET_D('JADFDFFDF') FROM TABLE1;

   270. NLS_CHARSET_NAME(N)

   返回相應於ID數N的NLS字符集名稱.

   SELECT NLS_CHARSET_NAME(2) FROM TABLE1;

   271. NVL(EXPR1,EXPR2)

   若EXPR1是NULL,則返回EXPR2,否則返回EXPR1.

   SELECT NAME,NVL(TO_CHAR(COMM),'NOT APPLICATION') FROM TABLE1;

   272. UID

   返回唯一標識當前數據庫用戶的整數.

   SELECT UID FROM TABLE1;

   273. USER
   用VARCHAR2數據類型返回當前ORACLE用戶的名稱.

   SELECT USER,UID FROM TABLE1;

   274. USERENV(OPTION)

   返回當前的會話信息.

   OPTION='ISDBA'若當前是DBA角色,則爲TRUE,否則FALSE.

   OPTION='LANGUAGE'返回數據庫的字符集.

   OPTION='SESSIONID'爲當前會話標識符.

   OPTION='ENTRYID'返回可審計的會話標識符.

   OPTION='LANG'返回會話語言名稱的ISO簡記.

   OPTION='INSTANCE'返回當前的實例.

   SELECT USERENV('LANGUAGE') FROM DUAL;

   275. VSIZE(EXPR)

   返回EXPR內部表示的字節數.

   SELECT NAME,VSIZE(NAME) FROM TABLE1;

   276. DEREF(E)

   返回參數E的對象引用.

   SELECT DEREF(C2) FROM TABLE1;

   277. REFTOHEX(R)

   將參數R轉換爲16進制.

   SELECT REFTOHEX(C2) FROM TABLE1;

   278. MAKE_REF(TABLE,KEY,KEY...)

   通過把給定的鍵作爲主鍵來創建給定視圖對象中一行的引用.

   CREATE TYPE T1 AS OBJECT(A NUMBER,B NUMBER);

   CREATE TABLE TB1(C1 NUMBER,C2 NUMBER,PRIMARY KEY(C1,C2));

   CREATE VIEW V1 OF T1 WITH OBJECT OID(A,B) AS SELECT * FROM TB1;

   SELECT MAKE_REF(V1,1,3) FROM PUBS;

   279. STDDEV(DISTINCT|ALL X)

   STDDEV給出一組行值的標準差.

   SELECT STDDEV(SALARY) AS EXAMPLE FROM EMPLOYEE;

   280. VARIANCE(DISTINCT|ALL X)

   VARIANCE返回一組行中所有value的方差.

   SELECT VARIANCE(SALARY) AS EXAMPLE FROM EMPLOYEE。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章