-CHAR, VARCHAR2タイプの引数をVARCHAR2タイプの値を返す関数
・CONCAT(char1, char2):Concatenationの略称で文字列を結合した結果を返す。「||」演算子と同じ役割。
--CONCAT例 SQL> SELECT CONCAT('mission-oraclemaster.','blogspot')||'.jp' name FROM DUAL; NAME -------------------------------- mission-oraclemaster.blogspot.jp SQL>
・INITCAP(char), LOWER(char), UPPER(char)
-INITCAP:文字列の最初も文字を大文字に変換
-LOWER:文字列を小文字に変換
-UPPER:文字列を大文字に変換
--INITCAP, LOWER, UPPER例 SQL> SELECT INITCAP('oracle-master') name FROM DUAL 2 UNION ALL 3 SELECT UPPER('oracle-master') name FROM DUAL 4 UNION ALL 5 SELECT LOWER('oracle-master') name FROM DUAL; NAME ------------- Oracle-Master ORACLE-MASTER oracle-master
・LPAD(char1, n[, char2]). RPAD(char1, n[, char2])
-LPAD:文字列の左に指定文字を埋める
-RPAD:文字列の右に指定文字を埋める
※nは返す文字列の長さを表し、char1の文字列がnより大きい場合、char1をn個の文字列を返す
--LPAD,RPAD例 SQL> SELECT LPAD('oracle-master', 15, '*') name FROM DUAL 2 UNION ALL 3 SELECT RPAD('oracle-master', 15, '*') name FROM DUAL; NAME --------------- **oracle-master oracle-master**
・SUBSTR(char, m, [n]), SUBSTRB(char, m, [n])
-SUBSTR関数はm番目から長さがn個の文字列を返す
-mが負数の場合後ろからm番目文字からn個の文字を返す
-SUBSTRB関数でBはByte単位で処理するを意味する
--3番目の文字列から返す SQL> SELECT SUBSTR('oracle-master', 3) name FROM DUAL; NAME ----------- acle-master --3番目から4つの文字列を返す SQL> SELECT SUBSTR('oracle-master', 3, 4) name FROM DUAL; NAME ---- acle --後から3番目から2つの文字列を返す SQL> SELECT SUBSTR('oracle-master', -3, 2) name FROM DUAL; NA -- te --DBがUTF-8の場合 SQL> SELECT SUBSTRB('オラクルマスター' , 1) name FROM DUAL 2 UNION ALL 3 SELECT SUBSTRB('オラクルマスター' , 3) name FROM DUAL; NAME ---------------- オラクルマスター ラクルマスター
・LENGTH(char), LENGTHB(char):文字列の長さを返す
--文字列のLENGTHを検索する例 --DBがUTF-8の場合 SQL> SELECT LENGTH('オラクルマスター') len FROM DUAL 2 UNION ALL 3 SELECT LENGTHB('オラクルマスター') len FROM DUAL; LEN ---------- 8 16
・REPLACE(char1, str1,str2):文字列の特定文字を別文字に変換する
--REPLACE例 SQL> SELECT REPLACE('oracle-master','oracle','db') name FROM DUAL; NAME --------- db-master --大文字、小文字を区別する SQL> SELECT REPLACE('Oracle-Master', 'oracle', 'DB') name FROM DUAL 2 UNION ALL 3 SELECT REPLACE('Oracle-master', 'Oracle', 'DB') name FROM DUAL; NAME ------------- Oracle-Master DB-master
・INSTR(char1, str1, m, n)
-文字列が含まれているかを調査して文字列の位置を返す
-指定の文字列が無ければ0が返される
-char1 : 指定文字、str1 : 検索文字、m : 開始位置、n : 検索順位
--指定した文字「OK」が無いので0を返す SQL> SELECT INSTR('CORPORATE FLOOR' , 'OK') idx FROM DUAL; IDX ---------- 0 --ORがある位置2を返す。左から比較する。 SQL> SELECT INSTR('CORPORATE FLOOR' , 'OR') idx FROM DUAL; IDX ---------- 2 --左から3番目からORを検索し位置を返す SQL> SELECT INSTR('CORPORATE FLOOR', 'OR' , 3) idx FROM DUAL; IDX ---------- 5 --左から3番目から比較し、ORが2回目に検索された位置を返す SQL> SELECT INSTR('CORPORATE FLOOR', 'OR', 3, 2) idx FROM DUAL; IDX ---------- 14
・TRIM(char1[,char2]), LTRIM(char1[,char2]), RTRIM(chaar1[,char2])
-TRIM:特定文字を削除する。削除する文字を入力しないと空白が削除される
-LTRIM:左から文字を削除する。削除する文字を入力しないと左の空白が削除される
-RTRIM:右から文字を削除する。削除する文字を入力しないと右の空白が削除される
--oと空白を削除するTRIM例 SQL> SELECT TRIM('o' FROM 'oracle-master') name FROM DUAL; NAME ------------ racle-master SQL> SELECT TRIM('o' FROM 'oracle-master') name FROM DUAL 2 UNION ALL 3 SELECT TRIM(' oracle-master ') name FROM DUAL; NAME ------------- racle-master oracle-master --左側の文字列TRIM例 --空白の場合、左の空白だけ削除される SQL> SELECT LTRIM('orcle-master' , 'oracle') name FROM DUAL 2 UNION ALL 3 SELECT REPLACE(LTRIM(' oracle-master '), ' ', '*') name FROM DUAL; NAME -------------- -master oracle-master* --右側の文字列TRIM例 --空白の場合、右の空白だけ削除される SQL> SELECT RTRIM('oracle-master', 'master') name FROM DUAL 2 UNION ALL 3 SELECT REPLACE(RTRIM(' oracle-master '), ' ', '*') name FROM DUAL; NAME -------------- oracle- *oracle-master
0 件のコメント:
コメントを投稿