Home実験室 − No.0048


        No.0048(SQL)
        文字・文字列の置換(REPLACE関数、TRANSLATE関数)

■環境
  □OS: Windows XP Professional SP3
  □Oracle: Oracle Database 11g R2 (Standard)
  □OSログインユーザ: ORA_DBAグループ
  □Oracleユーザ: dicdic(実験用ユーザー)

■実験
  0. 実験ユーザー「dicdic」でコネクトする。

SQL> conn dicdic/Oracle11g 接続されました。 SQL>



  1. 【REPLACE関数】
     REPLACE関数は、文字列の一部の文字列を、別の文字列に置換する。
     この関数は大文字と小文字を区別する。

SQL> SELECT REPLACE('Construced by OracleDatabase','O','Mi') FROM DUAL; REPLACE('CONSTRUCEDBYORACLEDA ----------------------------- Construced by MiracleDatabase SQL>



  2. 検索対象を「文字」以外に「文字列」で指定できる。

SQL> SELECT REPLACE('OracleDatabase','racle','gakuzu') FROM DUAL; REPLACE('ORACLE --------------- OgakuzuDatabase SQL>



  3. 【TRANSLATE関数】
     TRANSLATE関数は、文字列の中から対応する文字をいちいち変換することを
     一括で指示することができる(なんのこっちゃ?)。 暗号解読みたいなものと理解するとよいかと。

SQL> Select TRANSLATE('とんとかいも','いかともん','etsmy') 解読結果 from dual; 解読結 ------ system SQL>



  4. さっぱり解らないって? 上のはちょっと例が悪かったですね。      ↓こんな例ではどうでしょう?

SQL> Select TRANSLATE('OracleDatabase11gR2','abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ') 解読結果 from dual; 解読結果 ------------------- ORACLEDATABASE11GR2 SQL>



  5. 半角を全角にするなんていう使い方も。

SQL> Select TRANSLATE('OracleDatabase11gR2','1234567890','1234567890') 解読結果 from dual; 解読結果 ---------------------- OracleDatabase11gR2 SQL>



  6. TRANSLATE関数は大文字小文字を区別します。

SQL> Select TRANSLATE('aBc','ABC','ZZZ') 解読結果 from dual; 解 --- aZc SQL>



  7. TRANSLATE関数は全角と半角を区別します。

SQL> Select TRANSLATE('ABC','ABC','ZZZ') 解読結果 from dual; 解読 ---- AZC SQL>





    【PR】    Oracle実験室監修  『Oracleアーキテクチャ鳥瞰図』 PDF  (Oracleのアーキテクチャを一目で俯瞰できるイラスト)  


Home実験室 − No.0048

© 2011-2011   Amateur Laboratory of ORACLE
inserted by FC2 system