ORACLE常用傻瓜問題1000問之七 (轉)

worldblog發表於2007-08-17
ORACLE常用傻瓜問題1000問之七 (轉)[@more@]

    常用傻瓜問題1000問之七

作者:  CCBZZP

  大家在應用ORACLE的時候可能會遇到很多看起來不難的問題, 特別對新手來說, 今天我簡單把它總結一下, 發布給大家, 希望對大家有幫助! 和大家一起探討, 共同進步!:namespace prefix = o ns = "urn:schemas--com::office" />

  對ORACLE高手來說是不用看的.

 
 
 ORACLE內部函式篇
255. CHARTOROWID(CHAR)
  將包含外部語法ROWID的CHAR或VARCHAR2數值轉換為內部的二進位制語法,引數CHAR必須是包含外部語法的ROWID的18字元的字串.
  NAME FROM BSEMPMS WHERE ROWID=CHARTOROWID('AAAAfZAABAAACp8AAO');
  NAME :  LEIXUE

256. CONVERT(CHAR,DEST_CHAR_SET,_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('ADFD') 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  MABEL
  引數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='ISa'若當前是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 (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;


  待續...

 

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-963623/,如需轉載,請註明出處,否則將追究法律責任。

相關文章