- 浏览: 165619 次
- 性别:
- 来自: 北京
最新评论
-
lian819:
赞一个, 对理解hash有很大的帮助
HashSet中hashCode的作用 -
albrich:
有warn对实际没什么影响对吧?
Could not find property [struts.valueStack] -
edmond207:
绝对好使,非常感谢!
修改oracle 10g xe 的字符集 -
javaanddonet:
请问:
楼主在服务层中注入的时候,采用的是构造方法注入还是Se ...
Spring 循环依赖(circular reference)问题 -
txlaijava:
感谢分享咯. ~
oracle插入特殊字符
191. /*+REWRITE*/
可以将视图作为参数.
192. /*+MERGE(TABLE)*/
能够对视图的各个查询进行相应的合并.
例如:
SELECT /*+MERGE(V) */ A.EMP_NO,A.EMP_NAM,B.DPT_NO FROM BSEMPMS A (SELET DPT_NO
,AVG(SAL) AS AVG_SAL FROM BSEMPMS B GROUP BY DPT_NO) V WHERE A.DPT_NO=V.DPT_NO
AND A.SAL>V.AVG_SAL;
193. /*+NO_MERGE(TABLE)*/
对于有可合并的视图不再合并.
例如:
SELECT /*+NO_MERGE(V) */ A.EMP_NO,A.EMP_NAM,B.DPT_NO FROM BSEMPMS A (SELET DPT_NO
,AVG(SAL) AS AVG_SAL FROM BSEMPMS B GROUP BY DPT_NO) V WHERE A.DPT_NO=V.DPT_NO
AND A.SAL>V.AVG_SAL;
194. /*+ORDERED*/
根据表出现在FROM中的顺序,ORDERED使ORACLE依此顺序对其连接.
例如:
SELECT /*+ORDERED*/ A.COL1,B.COL2,C.COL3 FROM TABLE1 A,TABLE2 B,TABLE3 C
WHERE A.COL1=B.COL1 AND B.COL1=C.COL1;
195. /*+USE_NL(TABLE)*/
将指定表与嵌套的连接的行源进行连接,并把指定表作为内部表.
例如:
SELECT /*+ORDERED USE_NL(BSEMPMS)*/ BSDPTMS.DPT_NO,BSEMPMS.EMP_NO,BSEMPMS.EMP_NAM FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
196. /*+USE_MERGE(TABLE)*/
将指定的表与其他行源通过合并排序连接方式连接起来.
例如:
SELECT /*+USE_MERGE(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE
BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
197. /*+USE_HASH(TABLE)*/
将指定的表与其他行源通过哈希连接方式连接起来.
例如:
SELECT /*+USE_HASH(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE
BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
198. /*+DRIVING_SITE(TABLE)*/
强制与ORACLE所选择的位置不同的表进行查询执行.
例如:
SELECT /*+DRIVING_SITE(DEPT)*/ * FROM BSEMPMS,DEPT@BSDPTMS WHERE BSEMPMS.DPT_NO=DEPT.DPT_NO;
199. /*+LEADING(TABLE)*/
将指定的表作为连接次序中的首表.
200. /*+CACHE(TABLE)*/
当进行全表扫描时,CACHE提示能够将表的检索块放置在缓冲区缓存中最近最少列表LRU的最近使用端
例如:
SELECT /*+FULL(BSEMPMS) CAHE(BSEMPMS) */ EMP_NAM FROM BSEMPMS;
201. /*+NOCACHE(TABLE)*/
当进行全表扫描时,CACHE提示能够将表的检索块放置在缓冲区缓存中最近最少列表LRU的最近使用端
例如:
SELECT /*+FULL(BSEMPMS) NOCAHE(BSEMPMS) */ EMP_NAM FROM BSEMPMS;
202. /*+APPEND*/
直接插入到表的最后,可以提高速度.
insert /*+append*/ into test1 select * from test4 ;
203. /*+NOAPPEND*/
通过在插入语句生存期内停止并行模式来启动常规插入.
insert /*+noappend*/ into test1 select * from test4 ;
ORACLE內部函數篇
204. 如何得到字符串的第一個字符的ASCII值?
ASCII(CHAR)
SELECT ASCII('ABCDE') FROM DUAL;
結果: 65
205. 如何得到數值N指定的字符?
CHR(N)
SELECT CHR(68) FROM DUAL;
結果: D
206. 如何連接兩個字符串?
CONCAT(CHAR1,CHAR2)
SELECT CONCAT('ABC','DEFGH') FROM DUAL;
結果: 'ABCDEFGH'
207. 如何將列中的數值代替為字符串?
DECODE(CHAR,N1,CHAR1,N2,CHAR2...)
SELECT DECODE(DAY,1,'SUN',2,'MON') FROM DUAL;
208. INITCAP(CHAR)
將字符串CHAR的第一個字符為大寫,其余為小寫.
SELECT INITCAP('ABCDE') FROM DUAL;
209. LENGTH(CHAR)
取一字符串CHAR的長度.
SELECT LENGTH('ABCDE') FROM DUAL;
210. LOWER(CHAR)
將字符串CHAR全部變為小寫.
SELECT LOWER('ABCDE') FROM DUAL;
211. LPAD(CHAR1,N,CHAR2)
用字符串CHAR2包括的字符左填CHAR1,使其長度為N.
SELECT LPAD('ABCDEFG',10'123') FROM DUAL;
結果: '123ABCDEFG'
212. LTRIM(CHAR,SET)
從字符串CHAR的左邊移去字符串SET中的字符,直到第一個不是SET中的字符為止.
SELECT ('CDEFG','CD') FROM DUAL;
結果: 'EFG'
213. NLS_INITCAP(CHAR)
取字符CHAR的第一個字符大寫,其余字符為小寫.
SELECT NLS_INITCAP('ABCDE') FROM DUAL;
214. NLS_LOWER(CHAR)
將字符串CHAR包括的字符全部小寫.
SELECT NLS_LOWER('AAAA') FROM DUAL;
215. NLS_UPPER(CHAR)
將字符串CHAR包括的字符全部大寫.
SELECT NLS_UPPER('AAAA') FROM DUAL;
216. REPLACE(CHAR1,CHAR2,CHAR3)
用字符串CHAR3代替每一個列值為CHAR2的列,其結果放在CHAR1中.
SELECT REPLACE(EMP_NO,'123','456') FROM DUAL;
217. RPAD(CHAR1,N,CHAR2)
用字符串CHAR2右填字符串CHAR1,使其長度為N.
SELECT RPAD('234',8,'0') FROM DUAL;
218. RTRIM(CHAR,SET)
移去字符串CHAR右邊的字符串SET中的字符,直到最后一個不是SET中的字符為止.
SELECT RTRIM('ABCDE','DE') FROM DUAL;
219. SUBSTR(CHAR,M,N)
得到字符串CHAR從M處開始的N個字符. 雙字節字符,一個漢字為一個字符的.
SELECT SUBSTR('ABCDE',2,3) FROM DUAL;
220. SUBSTRB(CHAR,M,N)
得到字符串CHAR從M處開始的N個字符. 雙字節字符,一個漢字為二個字符的.
SELECT SUBSTRB('ABCDE',2,3) FROM DUAL;
221. TRANSLATE(CHAR1,CHAR2,CHAR3)
將CHAR1中的CHAR2的部分用CHAR3代替.
SELECT TRANSLATE('ABCDEFGH','DE','MN') FROM DUAL;
222. UPPER(CHAR)
將字符串CHAR全部為大寫.
223. ADD_MONTHS(D,N)
將N個月增加到D日期.
SELECT ADD_MONTHS(SYSDATE,5) FROM DUAL;
224. LAST_DAY(D)
得到包含D日期的月份的最后的一天的日期.
SELECT LAST_DAY(SYSDATE) FROM DUAL;
225. MONTH_BETWEEN(D1,D2)
得到兩個日期之間的月數.
SELECT MONTH_BETWEEN(D1,D2) FROM DUAL;
226. NEXT_DAY(D,CHAR)
得到比日期D晚的由CHAR命名的第一個周日的日期.
SELECT NEXT_DAY(TO_DATE('2003/09/20'),'SATDAY') FROM DUAL;
227. ROUNT(D,FMT)
得到按指定的模式FMT舍入到的最進的日期.
SELECT ROUNT('2003/09/20',MONTH) FROM DUAL;
228. SYSDATE
得到當前系統的日期和時間.
SELECT SYSDATE FROM DUAL;
229. TO_CHAR(D,FMT)
將日期D轉換為FMT的字符串.
SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD') FROM DUAL;
230. TO_DATE(CHAR,FMT)
將字符串CHAR按FMT的格式轉換為日期.
SELECT TO_DATE('2003/09/20','YYYY/MM/DD') FROM DUAL;
231. ABS(N)
得到N的絕對值.
SELECT ABS(-6) FROM DUAL;
232. CEIL(N)
得到大于或等于N的最大整數.
SELECT CEIL(5.6) FROM DUAL;
233. COS(N)
得到N的余弦值.
SELECT COS(1) FROM DUAL;
234. SIN(N)
得到N的正弦值.
SELECT SIN(1) FROM DUAL;
235. COSH(N)
得到N的雙曲余弦值.
SELECT COSH(1) FROM DUAL;
236. EXP(N)
得到N的E的N次冪.
SELECT EXP(1) FROM DUAL;
237. FLOOR(N)
得到小于或等于N的最小整數.
SELECT FLOOR(5.6) FROM DUAL;
238. LN(N)
得到N的自然對數.
SELECT LN(1) FROM DUAL;
239. LOG(M,N)
得到以M為底N的對數.
SELECT LOG(2,8) FROM DUAL;
240. MOD(M,N)
得到M除以N的余數.
SELECT MOD(100,7) FROM DUAL;
241. POWER(M,N)
得到M的N冪.
SELECT POWER(4,3) FROM DUAL;
242. ROUND(N,M)
將N舍入到小數點后M位.
SELECT (78.87653,2) FROM DUAL;
243. SIGN(N)
當N<0時,得到-1;
當N>0時,得到1;
當N=0時,得到0;
SELECT SIGN(99) FROM DUAL;
244. SINH(N)
得到N的雙曲正弦值.
SELECT SINH(1) FROM DUAL;
245. SORT(N)
得到N的平方根,N>=0
SELECT SORT(9) FROM DUAL;
246. TAN(N)
得到N的正切值.
SELECT TAN(0) FROM DUAL;
247. TANH(N)
得到N的雙曲正切值.
SELECT TANH(0) FROM DUAL;
248. TRUNC(N,M)
得到在M位截斷的N的值.
SELECT TRUNC(7.7788,2) FROM DUAL;
249. COUNT()
計算滿足條件的記錄數.
SELECT COUNT(*) FROM TABLE1 WHERE COL1='AAA';
250. MAX()
對指定的列求最大值.
SELECT MAX(COL1) FROM TABLE1;
251. MIN()
對指定的列求最小值.
SELECT MIN(COL1) FROM TABLE1;
252. AVG()
對指定的列求平均值.
SELECT AVG(COL1) FROM TABLE1;
253. SUM()
計算列的和.
SELECT SUM(COL1) FROM DUAL;
254. TO_NUMBER(CHAR)
將字符轉換為數值.
SELECT TO_NUMBER('999') FROM DUAL;
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;
可以将视图作为参数.
192. /*+MERGE(TABLE)*/
能够对视图的各个查询进行相应的合并.
例如:
SELECT /*+MERGE(V) */ A.EMP_NO,A.EMP_NAM,B.DPT_NO FROM BSEMPMS A (SELET DPT_NO
,AVG(SAL) AS AVG_SAL FROM BSEMPMS B GROUP BY DPT_NO) V WHERE A.DPT_NO=V.DPT_NO
AND A.SAL>V.AVG_SAL;
193. /*+NO_MERGE(TABLE)*/
对于有可合并的视图不再合并.
例如:
SELECT /*+NO_MERGE(V) */ A.EMP_NO,A.EMP_NAM,B.DPT_NO FROM BSEMPMS A (SELET DPT_NO
,AVG(SAL) AS AVG_SAL FROM BSEMPMS B GROUP BY DPT_NO) V WHERE A.DPT_NO=V.DPT_NO
AND A.SAL>V.AVG_SAL;
194. /*+ORDERED*/
根据表出现在FROM中的顺序,ORDERED使ORACLE依此顺序对其连接.
例如:
SELECT /*+ORDERED*/ A.COL1,B.COL2,C.COL3 FROM TABLE1 A,TABLE2 B,TABLE3 C
WHERE A.COL1=B.COL1 AND B.COL1=C.COL1;
195. /*+USE_NL(TABLE)*/
将指定表与嵌套的连接的行源进行连接,并把指定表作为内部表.
例如:
SELECT /*+ORDERED USE_NL(BSEMPMS)*/ BSDPTMS.DPT_NO,BSEMPMS.EMP_NO,BSEMPMS.EMP_NAM FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
196. /*+USE_MERGE(TABLE)*/
将指定的表与其他行源通过合并排序连接方式连接起来.
例如:
SELECT /*+USE_MERGE(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE
BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
197. /*+USE_HASH(TABLE)*/
将指定的表与其他行源通过哈希连接方式连接起来.
例如:
SELECT /*+USE_HASH(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE
BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
198. /*+DRIVING_SITE(TABLE)*/
强制与ORACLE所选择的位置不同的表进行查询执行.
例如:
SELECT /*+DRIVING_SITE(DEPT)*/ * FROM BSEMPMS,DEPT@BSDPTMS WHERE BSEMPMS.DPT_NO=DEPT.DPT_NO;
199. /*+LEADING(TABLE)*/
将指定的表作为连接次序中的首表.
200. /*+CACHE(TABLE)*/
当进行全表扫描时,CACHE提示能够将表的检索块放置在缓冲区缓存中最近最少列表LRU的最近使用端
例如:
SELECT /*+FULL(BSEMPMS) CAHE(BSEMPMS) */ EMP_NAM FROM BSEMPMS;
201. /*+NOCACHE(TABLE)*/
当进行全表扫描时,CACHE提示能够将表的检索块放置在缓冲区缓存中最近最少列表LRU的最近使用端
例如:
SELECT /*+FULL(BSEMPMS) NOCAHE(BSEMPMS) */ EMP_NAM FROM BSEMPMS;
202. /*+APPEND*/
直接插入到表的最后,可以提高速度.
insert /*+append*/ into test1 select * from test4 ;
203. /*+NOAPPEND*/
通过在插入语句生存期内停止并行模式来启动常规插入.
insert /*+noappend*/ into test1 select * from test4 ;
ORACLE內部函數篇
204. 如何得到字符串的第一個字符的ASCII值?
ASCII(CHAR)
SELECT ASCII('ABCDE') FROM DUAL;
結果: 65
205. 如何得到數值N指定的字符?
CHR(N)
SELECT CHR(68) FROM DUAL;
結果: D
206. 如何連接兩個字符串?
CONCAT(CHAR1,CHAR2)
SELECT CONCAT('ABC','DEFGH') FROM DUAL;
結果: 'ABCDEFGH'
207. 如何將列中的數值代替為字符串?
DECODE(CHAR,N1,CHAR1,N2,CHAR2...)
SELECT DECODE(DAY,1,'SUN',2,'MON') FROM DUAL;
208. INITCAP(CHAR)
將字符串CHAR的第一個字符為大寫,其余為小寫.
SELECT INITCAP('ABCDE') FROM DUAL;
209. LENGTH(CHAR)
取一字符串CHAR的長度.
SELECT LENGTH('ABCDE') FROM DUAL;
210. LOWER(CHAR)
將字符串CHAR全部變為小寫.
SELECT LOWER('ABCDE') FROM DUAL;
211. LPAD(CHAR1,N,CHAR2)
用字符串CHAR2包括的字符左填CHAR1,使其長度為N.
SELECT LPAD('ABCDEFG',10'123') FROM DUAL;
結果: '123ABCDEFG'
212. LTRIM(CHAR,SET)
從字符串CHAR的左邊移去字符串SET中的字符,直到第一個不是SET中的字符為止.
SELECT ('CDEFG','CD') FROM DUAL;
結果: 'EFG'
213. NLS_INITCAP(CHAR)
取字符CHAR的第一個字符大寫,其余字符為小寫.
SELECT NLS_INITCAP('ABCDE') FROM DUAL;
214. NLS_LOWER(CHAR)
將字符串CHAR包括的字符全部小寫.
SELECT NLS_LOWER('AAAA') FROM DUAL;
215. NLS_UPPER(CHAR)
將字符串CHAR包括的字符全部大寫.
SELECT NLS_UPPER('AAAA') FROM DUAL;
216. REPLACE(CHAR1,CHAR2,CHAR3)
用字符串CHAR3代替每一個列值為CHAR2的列,其結果放在CHAR1中.
SELECT REPLACE(EMP_NO,'123','456') FROM DUAL;
217. RPAD(CHAR1,N,CHAR2)
用字符串CHAR2右填字符串CHAR1,使其長度為N.
SELECT RPAD('234',8,'0') FROM DUAL;
218. RTRIM(CHAR,SET)
移去字符串CHAR右邊的字符串SET中的字符,直到最后一個不是SET中的字符為止.
SELECT RTRIM('ABCDE','DE') FROM DUAL;
219. SUBSTR(CHAR,M,N)
得到字符串CHAR從M處開始的N個字符. 雙字節字符,一個漢字為一個字符的.
SELECT SUBSTR('ABCDE',2,3) FROM DUAL;
220. SUBSTRB(CHAR,M,N)
得到字符串CHAR從M處開始的N個字符. 雙字節字符,一個漢字為二個字符的.
SELECT SUBSTRB('ABCDE',2,3) FROM DUAL;
221. TRANSLATE(CHAR1,CHAR2,CHAR3)
將CHAR1中的CHAR2的部分用CHAR3代替.
SELECT TRANSLATE('ABCDEFGH','DE','MN') FROM DUAL;
222. UPPER(CHAR)
將字符串CHAR全部為大寫.
223. ADD_MONTHS(D,N)
將N個月增加到D日期.
SELECT ADD_MONTHS(SYSDATE,5) FROM DUAL;
224. LAST_DAY(D)
得到包含D日期的月份的最后的一天的日期.
SELECT LAST_DAY(SYSDATE) FROM DUAL;
225. MONTH_BETWEEN(D1,D2)
得到兩個日期之間的月數.
SELECT MONTH_BETWEEN(D1,D2) FROM DUAL;
226. NEXT_DAY(D,CHAR)
得到比日期D晚的由CHAR命名的第一個周日的日期.
SELECT NEXT_DAY(TO_DATE('2003/09/20'),'SATDAY') FROM DUAL;
227. ROUNT(D,FMT)
得到按指定的模式FMT舍入到的最進的日期.
SELECT ROUNT('2003/09/20',MONTH) FROM DUAL;
228. SYSDATE
得到當前系統的日期和時間.
SELECT SYSDATE FROM DUAL;
229. TO_CHAR(D,FMT)
將日期D轉換為FMT的字符串.
SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD') FROM DUAL;
230. TO_DATE(CHAR,FMT)
將字符串CHAR按FMT的格式轉換為日期.
SELECT TO_DATE('2003/09/20','YYYY/MM/DD') FROM DUAL;
231. ABS(N)
得到N的絕對值.
SELECT ABS(-6) FROM DUAL;
232. CEIL(N)
得到大于或等于N的最大整數.
SELECT CEIL(5.6) FROM DUAL;
233. COS(N)
得到N的余弦值.
SELECT COS(1) FROM DUAL;
234. SIN(N)
得到N的正弦值.
SELECT SIN(1) FROM DUAL;
235. COSH(N)
得到N的雙曲余弦值.
SELECT COSH(1) FROM DUAL;
236. EXP(N)
得到N的E的N次冪.
SELECT EXP(1) FROM DUAL;
237. FLOOR(N)
得到小于或等于N的最小整數.
SELECT FLOOR(5.6) FROM DUAL;
238. LN(N)
得到N的自然對數.
SELECT LN(1) FROM DUAL;
239. LOG(M,N)
得到以M為底N的對數.
SELECT LOG(2,8) FROM DUAL;
240. MOD(M,N)
得到M除以N的余數.
SELECT MOD(100,7) FROM DUAL;
241. POWER(M,N)
得到M的N冪.
SELECT POWER(4,3) FROM DUAL;
242. ROUND(N,M)
將N舍入到小數點后M位.
SELECT (78.87653,2) FROM DUAL;
243. SIGN(N)
當N<0時,得到-1;
當N>0時,得到1;
當N=0時,得到0;
SELECT SIGN(99) FROM DUAL;
244. SINH(N)
得到N的雙曲正弦值.
SELECT SINH(1) FROM DUAL;
245. SORT(N)
得到N的平方根,N>=0
SELECT SORT(9) FROM DUAL;
246. TAN(N)
得到N的正切值.
SELECT TAN(0) FROM DUAL;
247. TANH(N)
得到N的雙曲正切值.
SELECT TANH(0) FROM DUAL;
248. TRUNC(N,M)
得到在M位截斷的N的值.
SELECT TRUNC(7.7788,2) FROM DUAL;
249. COUNT()
計算滿足條件的記錄數.
SELECT COUNT(*) FROM TABLE1 WHERE COL1='AAA';
250. MAX()
對指定的列求最大值.
SELECT MAX(COL1) FROM TABLE1;
251. MIN()
對指定的列求最小值.
SELECT MIN(COL1) FROM TABLE1;
252. AVG()
對指定的列求平均值.
SELECT AVG(COL1) FROM TABLE1;
253. SUM()
計算列的和.
SELECT SUM(COL1) FROM DUAL;
254. TO_NUMBER(CHAR)
將字符轉換為數值.
SELECT TO_NUMBER('999') FROM DUAL;
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;
发表评论
-
Oracle in和exists not in和not exists的比较
2009-10-28 14:59 1394在Oracle中,经常会被到底用EXISTS还是用IN而困惑, ... -
修改oracle 10g xe 的字符集
2009-09-21 15:09 3412目前,Oracle 10g XE的缺省字符集不是中文字符集, ... -
oracle存储过程之返回列表
2009-09-02 17:40 2690一. 创建表并插入数据 SQL> create tab ... -
Oracle日期函数--next_day
2009-09-01 16:16 3892在Oracle是提供了next_day求指定日期的下一个日期. ... -
oracle 1000例(六)
2009-07-31 14:58 10139I管理的数据字典ALL视图。 783. ALL_ALL ... -
oracle 1000例(五)
2009-07-31 14:57 8219I管理的数据字典DBA视图。 485. DBA_2PC_N ... -
oracle 1000例(四)
2009-07-31 14:54 10379I管理的V$视图。 281. V$ACCESS 显示 ... -
oracle 1000例(二)
2009-07-31 14:51 90788. CHR()的反函數是? ASCII() ... -
oracle 1000例(一)
2009-07-31 14:48 10421. Oracle安裝完成后的初始口令? intern ... -
Oracle 中的replace和translate函数 以及关键字过滤
2009-07-31 13:52 4445文章出处: http://hi.baid ... -
oracle插入特殊字符
2009-07-06 14:15 5751今天在导入一批数据到O ...
相关推荐
在例子中,员工表根据所在城市被划分为三个分区,每个分区包含一组城市。 ```sql CREATE TABLE emp ( empno NUMBER(4), ename VARCHAR2(30), location VARCHAR2(30) ) PARTITION BY LIST (location) ( ...
为了更好地理解 SQL 语句的应用场景,下面以 Oracle 示例数据库 SCOTT 下的 EMP 表为例: - **表结构**: | 字段名称 | 数据类型 | 描述 | |----------|--------------|-------------| | EMPNO | NUMBER(4) | ...
4. `create tablespace sales datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M autoextend on next 50M maxsize 1000M extent management local uniform size 500K;` - 类似于上例,但分配...
ORACLE常用命令 一、ORACLE的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup ...
- 本例使用 Oracle 8iR2 (8.1.6) 版本进行安装。 - 所有安装步骤均采用系统默认设置。 - 安装前请确保关闭所有正在运行的程序。 - 需要为 Oracle 安装路径预留至少 1GB 的硬盘空间。 ##### 2. 硬件要求 - 处理器:...
#### 三、安装前的准备工作 1. **网络配置**: - 配置eth0和eth1的IP地址。 - 更新`/etc/hosts`文件,确保每个节点能够通过主机名相互通信。 2. **内核模块加载**: - 在`/etc/modprobe.d/dist.conf`文件中添加...
- 示例配置文件(以`ifcfg-bond0`为例): ```bash DEVICE=bond0 BOOTPROTO=none IPADDR=192.168.1.100 PREFIX=24 BONDING_OPTS="mode=1 miimon=100" ONBOOT=yes ``` - **注意事项**:在`/etc/hosts`文件...
其三、职业方向多:Oracle数据库管理方向、Oracle开发及系统架构方向、Oracle数据建模数据仓库等方向。 四、 如何学习 认真听课、多思考问题、多动手操作、有问题一定要问、多参与讨论、多帮组同学 五、 体系结构 ...
三、 Oracle数据库数据查询 1、单表查询 2、多表查询 四、 SQL*PLUS常用命令 表1 常用报表格式化名命令 命令 定义 Btitle 为报表的每一页设置底端标题 Column 设置列的标题和格式 Compute 让SQL*PLUS计算各种值 ...
- `groupadd -g 1000 oinstall` 创建组ID为1000的 `oinstall` 组; - `groupadd -g 1200 asmadmin` 创建组ID为1200的 `asmadmin` 组; - 其他组的创建方式类似。 ##### 3. 创建用户 接下来,脚本通过 `useradd` ...
"JAVA国际认证(SCJP)典型试题1000例"是一个帮助考生准备SCJP考试的学习资源,包含了一千个典型题目,涵盖了考试大纲中的各个重要知识点。 一、Java基础 1. 数据类型:包括基本数据类型(整型、浮点型、字符型、...
Oracle通常使用如下三张表来处理国际化和Datatrack信息: - `HR_ALL_POSITIONS_F_TL`: 国际化表,包含职位ID和名称。 - `HR_ALL_POSITIONS_F`: 职位信息表,包含所有信息字段且支持Datatrack功能。 - `PER_ALL_...
以更新操作为例:当执行`UPDATE`语句时,Oracle会将包含要更新记录的数据块从磁盘读取到数据缓冲区。这意味着不仅被修改的记录会被读取进来,整个数据块内的所有记录都会被加载。 #### 二、回滚段的机制与内容 在...
《Java典型应用彻查1000例第五卷:网站数据库设计》是针对Java开发者的一份宝贵资源,它深入探讨了如何使用Java进行网站后台数据库的设计与开发。这份压缩包包含源码、PPT和习题,旨在帮助学习者通过实践来提升技能...
- **表结构**:以Oracle数据库中的`Student`表为例,其字段包括: - `Student_ID`:学员编号,整型,主键,自动增长。 - `Student_Name`:学员姓名,字符串类型。 - `Student_Age`:学员年龄,整型。 - **SQL脚本...
#### 三、显式游标示例 下面通过一个具体的例子来展示如何使用显式游标: ```plsql DECLARE CURSOR c_dept IS SELECT deptno, dname FROM dept ORDER BY deptno; CURSOR c_emp(p_dept VARCHAR2) IS SELECT ...
PARTITION p1 VALUES LESS THAN (1000) TABLESPACE p1, PARTITION p2 VALUES LESS THAN (2000) TABLESPACE p2, PARTITION p3 VALUES LESS THAN (MAXVALUE) TABLESPACE p3 ); CREATE INDEX i_id ON test (id) ...
Tuxedo是由Oracle公司提供的分布式计算环境下的中间件产品,主要用于开发和管理三层客户/服务器架构的应用系统。其核心功能在于支持分布式事务处理和应用间的通信,同时提供了一系列服务以确保关键任务应用系统的...
在本例中,CASE语句根据工资的大小,计算出不同的税率,并最终得到每位员工的税款。 #### DECODE函数详解 DECODE()函数也是Oracle提供的一种多分支选择结构,但它更简洁,适用于简单的条件判断。在这个例子中,...