ORACLE常用傻瓜問題1000問全集(三)
2024-08-29 13:40:58
供稿:網友
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;
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中的單字節轉換為等價的多字節字符。