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

    【Oracle】テーブル指定で統計情報をバックアップ、インポートする方法とポイント

    Oracle Databaseで、テーブルを指定して統計情報をバックア…

  3. Oracle

    OracleのセッションIDからOSのプロセスIDを調べる方法

    Oracleで障害調査を行いたいときなどに、sidからOSのプロセスI…

  4. Oracle

    Statspackの取り方:テキスト形式のレポートをコマンドで出力する

    Oracleの障害や状況調査で役に立つStatspackレポートをテキ…

  5. Oracle

    【Oracle】統計情報のバックアップとリカバリの方法

    Oracleの統計情報をユーザー単位でバックアップする方法と、バックア…

コメント

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

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

最近の記事

  1. さくらのVPSにCentOS 5をインストールする方法
  2. PHP PhantomJSでFatal error: Unc…
  3. 【Oracle】DataPumpの対話式コマンドモードを抜け…
  4. CentOS7のPHP5.6にPhpSpreadsheetを…
  5. Azure仮想マシン(CentOS 7)のStandardデ…
PAGE TOP