Oracle

  (最終更新日:2014.09.19)

Oracleでカラムのデータをほぼ同じ文字数の文字で置換する方法

つまりどういうことだってばよ!!!って言われそうですが。 噛み砕いていうと「山田太郎」というデータを「ああああ」と置換する方法です。 個人名などの個人情報が入ったデータをupdateでマスキングする際に利用できます。

Oracleのlpad関数length関数を利用すればサクッとできます。

つまりlength関数で該当のデータの文字数をカウントして、その文字数分、lpad関数で『あ』といった適当な文字で文字埋めします。

例として下記のようなSQLで置換できます。

UPDATE
    MEIBO
SET
    nm_kanji = lpad(' ',length(nm_kanji)*2,'あ'),
    nm_romaji = lpad(' ',length(nm_romaji),'a');

*2 としているのは、lpad関数で全角文字を利用するとバイト数に換算されて埋められてしまうからです。つまり「山田太郎(4文字)」の場合、 lpad(‘ ‘,length(‘山田太郎’),’あ’) とすると4バイトとされてしまい2文字の ああ となってしまいます。

「ほぼ同じ文字数」という逃げを使っているのはこういうことです。

スポンサーリンク
スポンサーリンク

関連記事

  1. Oracle

    【SQL*Plus】SYSDBA権限でリモートサーバに簡易接続ネーミングで接続する方法

    リモートのOracleサーバにSQL*Plusで接続する際に、SYSD…

  2. Oracle

    最新のOpatchをダウンロードする方法

    Oracleから最新のOpatchをダウンロードする方法が非常に分かり…

  3. Oracle

    Oracleのプロファイルを参照作成(コピー)するなら類似作成が便利

    Oracleでパスワードの有効期限などを独自に設定したプロファイルを作…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

最近の記事

  1. PHP PhantomJSでFatal error: Unc…
  2. 【Oracle】DataPumpの対話式コマンドモードを抜け…
  3. CentOS7のPHP5.6にPhpSpreadsheetを…
  4. Azure仮想マシン(CentOS 7)のStandardデ…
  5. 【CentOS 7】特定ユーザーのクォータ設定を削除(無制限…
PAGE TOP