/+NOCACHE(TABLE)/
當(dāng)進(jìn)行全表掃描時,CACHE提示能夠?qū)⒈淼臋z索塊放置在緩沖區(qū)緩存中最近最少列表LRU的最近使用端
例如:
SELECT /*+FULL(BSEMPMS) NOCAHE(BSEMPMS) */ EMP_NAM FROM BSEMPMS;/+APPEND/
直接插入到表的最后,可以提高速度.
insert /+append/ into test1 select * from test4 ;/+NOAPPEND/
通過在插入語句生存期內(nèi)停止并行模式來啟動常規(guī)插入.
insert /+noappend/ into test1 select * from test4 ;
ORACLE內(nèi)部函數(shù)篇
如何得到字符串的第一個字符的ASCII值?
ASCII(CHAR)
SELECT ASCII('ABCDE') FROM DUAL;
結(jié)果: 65如何得到數(shù)值N指定的字符?
CHR(N)
SELECT CHR(68) FROM DUAL;
結(jié)果: D如何連接兩個字符串?
CONCAT(CHAR1,CHAR2)
SELECT CONCAT('ABC','DEFGH') FROM DUAL;
結(jié)果: 'ABCDEFGH'如何將列中的數(shù)值代替為字符串?
DECODE(CHAR,N1,CHAR1,N2,CHAR2...)
SELECT DECODE(DAY,1,'SUN',2,'MON') FROM DUAL;INITCAP(CHAR)
將字符串CHAR的第一個字符為大寫,其余為小寫.
SELECT INITCAP('ABCDE') FROM DUAL;LENGTH(CHAR)
取一字符串CHAR的長度.
SELECT LENGTH('ABCDE') FROM DUAL;LOWER(CHAR)
將字符串CHAR全部變?yōu)樾?
SELECT LOWER('ABCDE') FROM DUAL;LPAD(CHAR1,N,CHAR2)
用字符串CHAR2包括的字符左填CHAR1,使其長度為N.
SELECT LPAD('ABCDEFG',10'123') FROM DUAL;
結(jié)果: '123ABCDEFG'LTRIM(CHAR,SET)
從字符串CHAR的左邊移去字符串SET中的字符,直到第一個不是SET中的字符為止.
SELECT ('CDEFG','CD') FROM DUAL;
結(jié)果: 'EFG'NLS_INITCAP(CHAR)
取字符CHAR的第一個字符大寫,其余字符為小寫.
SELECT NLS_INITCAP('ABCDE') FROM DUAL;NLS_LOWER(CHAR)
將字符串CHAR包括的字符全部小寫.
SELECT NLS_LOWER('AAAA') FROM DUAL;NLS_UPPER(CHAR)
將字符串CHAR包括的字符全部大寫.
SELECT NLS_UPPER('AAAA') FROM DUAL;REPLACE(CHAR1,CHAR2,CHAR3)
用字符串CHAR3代替每一個列值為CHAR2的列,其結(jié)果放在CHAR1中.
SELECT REPLACE(EMP_NO,'123','456') FROM DUAL;RPAD(CHAR1,N,CHAR2)
用字符串CHAR2右填字符串CHAR1,使其長度為N.
SELECT RPAD('234',8,'0') FROM DUAL;RTRIM(CHAR,SET)
移去字符串CHAR右邊的字符串SET中的字符,直到最后一個不是SET中的字符為止.
SELECT RTRIM('ABCDE','DE') FROM DUAL;SUBSTR(CHAR,M,N)
得到字符串CHAR從M處開始的N個字符. 雙字節(jié)字符,一個漢字為一個字符的.
SELECT SUBSTR('ABCDE',2,3) FROM DUAL;SUBSTRB(CHAR,M,N)
得到字符串CHAR從M處開始的N個字符. 雙字節(jié)字符,一個漢字為二個字符的.
SELECT SUBSTRB('ABCDE',2,3) FROM DUAL;TRANSLATE(CHAR1,CHAR2,CHAR3)
將CHAR1中的CHAR2的部分用CHAR3代替.
SELECT TRANSLATE('ABCDEFGH','DE','MN') FROM DUAL;UPPER(CHAR)
將字符串CHAR全部為大寫.ADD_MONTHS(D,N)
將N個月增加到D日期.
SELECT ADD_MONTHS(SYS2003-10-17,5) FROM DUAL;LAST_DAY(D)
得到包含D日期的月份的最后的一天的日期.
SELECT LAST_DAY(SYS2003-10-17) FROM DUAL;MONTH_BETWEEN(D1,D2)
得到兩個日期之間的月數(shù).
SELECT MONTH_BETWEEN(D1,D2) FROM DUAL;NEXT_DAY(D,CHAR)
得到比日期D晚的由CHAR命名的第一個周日的日期.
SELECT NEXT_DAY(TO_2003-10-17('2003/09/20'),'SATDAY') FROM DUAL;ROUNT(D,FMT)
得到按指定的模式FMT舍入到的最進(jìn)的日期.
SELECT ROUNT('2003/09/20',MONTH) FROM DUAL;SYS2003-10-17
得到當(dāng)前系統(tǒng)的日期和時間.
SELECT SYS2003-10-17 FROM DUAL;TO_CHAR(D,FMT)
將日期D轉(zhuǎn)換為FMT的字符串.
SELECT TO_CHAR(SYS2003-10-17,'YYYY/MM/DD') FROM DUAL;TO_2003-10-17(CHAR,FMT)
將字符串CHAR按FMT的格式轉(zhuǎn)換為日期.
SELECT TO_2003-10-17('2003/09/20','YYYY/MM/DD') FROM DUAL;ABS(N)
得到N的絕對值.
SELECT ABS(-6) FROM DUAL;CEIL(N)
得到大于或等于N的最大整數(shù).
SELECT CEIL(5.6) FROM DUAL;COS(N)
得到N的余弦值.
SELECT COS(1) FROM DUAL;SIN(N)
得到N的正弦值.
SELECT SIN(1) FROM DUAL;COSH(N)
得到N的雙曲余弦值.
SELECT COSH(1) FROM DUAL;EXP(N)
得到N的E的N次冪.
SELECT EXP(1) FROM DUAL;FLOOR(N)
得到小于或等于N的最小整數(shù).
SELECT FLOOR(5.6) FROM DUAL;LN(N)
得到N的自然對數(shù).
SELECT LN(1) FROM DUAL;LOG(M,N)
得到以M為底N的對數(shù).
SELECT LOG(2,8) FROM DUAL;MOD(M,N)
得到M除以N的余數(shù).
SELECT MOD(100,7) FROM DUAL;POWER(M,N)
得到M的N冪.
SELECT POWER(4,3) FROM DUAL;ROUND(N,M)
將N舍入到小數(shù)點后M位.
SELECT (78.87653,2) FROM DUAL;SIGN(N)
當(dāng)N<0時,得到-1;
當(dāng)N>0時,得到1;
當(dāng)N=0時,得到0;
SELECT SIGN(99) FROM DUAL;SINH(N)
得到N的雙曲正弦值.
SELECT SINH(1) FROM DUAL;SORT(N)
得到N的平方根,N>=0
SELECT SORT(9) FROM DUAL;TAN(N)
得到N的正切值.
SELECT TAN(0) FROM DUAL;TANH(N)
得到N的雙曲正切值.
SELECT TANH(0) FROM DUAL;TRUNC(N,M)
得到在M位截斷的N的值.
SELECT TRUNC(7.7788,2) FROM DUAL;COUNT()
計算滿足條件的記錄數(shù).
SELECT COUNT(*) FROM TABLE1 WHERE COL1='AAA';MAX()
對指定的列求最大值.
SELECT MAX(COL1) FROM TABLE1;MIN()
對指定的列求最小值.
SELECT MIN(COL1) FROM TABLE1;AVG()
對指定的列求平均值.
SELECT AVG(COL1) FROM TABLE1;SUM()
計算列的和.
SELECT SUM(COL1) FROM DUAL;TO_NUMBER(CHAR)
將字符轉(zhuǎn)換為數(shù)值.
SELECT TO_NUMBER('999') FROM DUAL;
ORACLE內(nèi)部函數(shù)篇
CHARTOROWID(CHAR)
將包含外部語法ROWID的CHAR或VARCHAR2數(shù)值轉(zhuǎn)換為內(nèi)部的二進(jìn)制語法,參數(shù)CHAR必須是包含外部語法的ROWID的18字符的字符串.
SELECT NAME FROM BSEMPMS WHERE ROWID=CHARTOROWID('AAAAfZAABAAACp8AAO');
NAME : LEIXUECONVERT(CHAR,DEST_CHAR_SET,SOURCE_CHAR_SET)
CONVERT將字符串CHAR中的字符從SOURCE_CHAR_SET標(biāo)識的字符集轉(zhuǎn)換為由DEST_CHAR_SET標(biāo)識的字符集
SELECT CONVERT('GroB','US7ASCII','WE8HP') 'CONVERSION' FROM PUBS;
CONVERSION: Gross
HEXTORAW(CHAR)
將包含十六進(jìn)制的CHAR轉(zhuǎn)換為一個RAW數(shù)值.
INSERT INTO BSEMPMS(RAW_COLUMN) SELECT HEXTORAW('7D') FROM TEST;RAWTOHEX(RAW)
將RAW數(shù)值轉(zhuǎn)換為一個包含十六進(jìn)制的CHAR值.
SELECT RAWTOHEX(RAW_COLUMN) 'CONVERSION' FROM BSEMPMS;
CONVERSION: 7DROWIDTOCHAR(ROWID)
將一個ROWID數(shù)值轉(zhuǎn)換為VARCHAR2數(shù)據(jù)類型.
SELECT ROWID FROM BSEMPMS WHERE ROWIDTOCHAR(ROWID) LIKE '%BR1AAB%';TO_MULTI_BYTE(CHAR)
將CHAR中的單字節(jié)轉(zhuǎn)換為等價的多字節(jié)字符.
SELECT TO_MULTI_BYTE('ASFDFD') FROM TEST;TO_SINGLE_BYTE(CHAR)
將CHAR中的多字節(jié)轉(zhuǎn)換為等價的單字節(jié)字符.
SELECT TO_SINGLE_BYTE('ASFDFD') FROM TEST;TRANSLATE USING(TEXT USING {CHAR_CS|NCHAR_CS})
將文本TEXT按照指定的轉(zhuǎn)換方式轉(zhuǎn)換成數(shù)據(jù)庫字符集和民族字符集.
其中TEXT是待轉(zhuǎn)換的.
USING CHAR_CS參數(shù)轉(zhuǎn)換TEXT為數(shù)據(jù)庫字符集,輸出數(shù)據(jù)類型是VARCHAR2.
USING NCHAR_CS參數(shù)轉(zhuǎn)換TEXT為數(shù)據(jù)庫字符集,輸出數(shù)據(jù)類型是NVARCHAR2.
CREATE TABLE TEST(CHAR_COL CHAR(20),NCHAR_COL NCHAR(20));
INSERT INTO TEST VALUES('HI,N'BYE');
SELECT * FROM TEST;DUMP(EXPR,RETURN_FORMAT,START_POSITION,LENGTH)
返回一個包含數(shù)據(jù)類型代碼,字節(jié)長度等內(nèi)部表示信息的VARCHAR2值.返回結(jié)果是當(dāng)前數(shù)據(jù)庫字符集,數(shù)據(jù)類型按照下面規(guī)定的內(nèi)部數(shù)據(jù)類型的編碼作為一個數(shù)字進(jìn)行返回:
代碼 數(shù)據(jù)類型
0 VARCHAR2
1 NUMBER
8 LONG
12 2003-10-17
23 RAW
24 LONG RAW
69 ROWID
96 CHAR
106 MSSLABEL
參數(shù)RETUEN_FORMAT指定按照下面的基數(shù)表示返回的數(shù)值.
RETURN_FORMAT RESULT
8 8進(jìn)制
10 10進(jìn)制
16 16進(jìn)制
17 單字符表示
如果參數(shù)RETURN_FORMAT沒有指定,則按十進(jìn)制表示返回.
如果參數(shù)START_POSITION和LENGTH被指定,則從START_POSITION開始的長為LENGTH的字節(jié)將被返回,缺省是返回整數(shù)表示.
SELECT DUMP('ABC',1016) FROM TEST;
select dump(ename,8,3,2) 'example' from emp where name='ccbzzp';empty_b|clob()
返回一個空的LOB定位符,用在初始化LOB變量,或用在INSERT及UP2003-10-17聲明去初始化LOB列或?qū)⑵鋵傩灾脼榭?
INSERT INTO TABLE1 VALUES(EMPTY_BLOB());
UP2003-10-17 TABLE1 SET CLOB_COL=EMPTY_BLOB();BFILENAME('DIRECTORY','FILENAME')
返回一個BFILE定位符,相關(guān)的二進(jìn)制LOB物理文件在服務(wù)器的文件系統(tǒng)上.目錄DIRECTORY是指在服務(wù)器的文件系統(tǒng)上實際搜索路徑全名的別名. FILENAME是指服務(wù)器的文件系統(tǒng)的文件名.
INSERT INTO FILE_TAB VALUES(BFILENAME('LOB_DIR','IMAGE1.GIF'));GREATEST(EXPR,EXPR,...)
GREATEST返回參數(shù)的最大值.
SELECT GREATEST('HARRY','HARRIOT','HAROLD') 'SAMPLE' FROM TABLE1;LEAST(EXPR,EXPR,...)
LEAST返回參數(shù)的最小值.
SELECT LEAST('HARRY','HARRIOT','HAROLD') 'SAMPLE' FROM TABLE1;NLS_CHARSET_DECL_LEN(BYTECNT,CSID)
返回一個NCHAR列的寬度.
SELECT NLS_CHARSET_DECL_LEN(200,NLS_CHARSET_ID('JA16EEFDFDF')) FROM TABLE1;NLS_CHARSET_ID(TEXT)
返回相應(yīng)于NLS字符集名字的NLS字符集ID數(shù).
SELECT NLS_CHARSET_D('JADFDFFDF') FROM TABLE1;NLS_CHARSET_NAME(N)
返回相應(yīng)于ID數(shù)N的NLS字符集名稱.
SELECT NLS_CHARSET_NAME(2) FROM TABLE1;NVL(EXPR1,EXPR2)
若EXPR1是NULL,則返回EXPR2,否則返回EXPR1.
SELECT NAME,NVL(TO_CHAR(COMM),'NOT APPLICATION') FROM TABLE1;UID
返回唯一標(biāo)識當(dāng)前數(shù)據(jù)庫用戶的整數(shù).
SELECT UID FROM TABLE1;USER
用VARCHAR2數(shù)據(jù)類型返回當(dāng)前ORACLE用戶的名稱.
SELECT USER,UID FROM TABLE1;USERENV(OPTION)
返回當(dāng)前的會話信息.
OPTION='ISDBA'若當(dāng)前是DBA角色,則為TRUE,否則FALSE.
OPTION='LANGUAGE'返回數(shù)據(jù)庫的字符集.
OPTION='SESSIONID'為當(dāng)前會話標(biāo)識符.
OPTION='ENTRYID'返回可審計的會話標(biāo)識符.
OPTION='LANG'返回會話語言名稱的ISO簡記.
OPTION='INSTANCE'返回當(dāng)前的實例.
SELECT USERENV('LANGUAGE') FROM DUAL;VSIZE(EXPR)
返回EXPR內(nèi)部表示的字節(jié)數(shù).
SELECT NAME,VSIZE(NAME) FROM TABLE1;DEREF(E)
返回參數(shù)E的對象引用.
SELECT DEREF(C2) FROM TABLE1;REFTOHEX(R)
將參數(shù)R轉(zhuǎn)換為16進(jìn)制.
SELECT REFTOHEX(C2) FROM TABLE1;MAKE_REF(TABLE,KEY,KEY...)
通過把給定的鍵作為主鍵來創(chuàng)建給定視圖對象中一行的引用.
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;STDDEV(DISTINCT|ALL X)
STDDEV給出一組行值的標(biāo)準(zhǔn)差.
SELECT STDDEV(SALARY) AS EXAMPLE FROM EMPLOYEE;VARIANCE(DISTINCT|ALL X)
VARIANCE返回一組行中所有VALUE的方差.
SELECT VARIANCE(SALARY) AS EXAMPLE FROM EMPLOYEE;
9I管理的V$視圖审胸。
- V$ACCESS
顯示當(dāng)前被鎖定的數(shù)據(jù)庫中的對象及正在訪問他們的會話.
- V$ACTIVE_INSTANCES
為當(dāng)前安裝的數(shù)據(jù)庫中出現(xiàn)的所有實例建立從實例名到實例號的映射.
- V$ACTIVE_SESS_POOL_MTH
所有活動的會話池資源分配方法.
- V$AQ
當(dāng)前數(shù)據(jù)庫中的隊列的統(tǒng)計量.
- V$ARCHIVE
歸檔所需的重做日志文件中的信息.
- V$ARCHIVE_DEST
當(dāng)前實例的所有歸檔日志目的文件及它們的當(dāng)前值,模式,狀態(tài).
- V$ARCHIVE_PROCESSES
為一個實例提供不同的ARCH進(jìn)程狀態(tài)的信息.
- V$ARCHIVE_LOG
控制文件中的歸檔日志信息.
- V$BACKUP
所有聯(lián)機(jī)數(shù)據(jù)文件的備份狀態(tài).
- V$BACKUP_ASYNC_IO
從控制文件中顯示備份集的信息.
- V$BACKUP_CORRUPTION
從控制文件中顯示數(shù)據(jù)文件備份中有關(guān)損壞的信息.
- V$BACKUP_DATAFILE
從控制文件中顯示備份數(shù)據(jù)文件和備份控制文件的信息.
- V$BACKUP_DEVICE
顯示關(guān)于支持備份設(shè)備的信息.
- V$BACKUP_PIECE
從控制文件中顯示備份塊的信息.
- V$BACKUP_REDOLOG
從控制文件中顯示關(guān)于備份集中歸檔日志的信息.
- V$BACKUP_SET
從控制文件中顯示備份集的信息.
- V$BACKUP_SYNC_IO
從控制文件中顯示備份集的信息.
- V$BGPROCESS
描述后臺進(jìn)程.
- V$BH
是9I的實時應(yīng)用集群視圖.為系統(tǒng)全局區(qū)中的每一個緩沖區(qū)給出了狀態(tài)和探查次數(shù).
- V$BSP
顯示用在緩存中塊服務(wù)器后臺進(jìn)程上的統(tǒng)計信息.