oracle经典问题8


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當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常用傻瓜問題1000問之七

作者: CCBZZP

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

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

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;

声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 智乐兔
转载请注明:转自《oracle经典问题8
本文地址:https://www.zhiletu.com/archives-360.html
关注公众号:智乐兔

赞赏

wechat pay微信赞赏alipay pay支付宝赞赏

上一篇
下一篇

相关文章

在线留言

你必须 登录后 才能留言!

在线客服
在线客服 X

售前: 点击这里给我发消息
售后: 点击这里给我发消息

智乐兔官微