好きなおでんの具材ドラフト会議しましょう

電話番号のデータを文字列分、'#'で置換したいのですが、

update test set tel_no = replace(tel_no,tel_no,'#');

では、'#'一文字になってしまいます。

電話番号が10桁の場合、##########と置換するための
OracleのSQLを教えてください。

A 回答 (3件)

#2です。



update test set tel_no = substr('##########',1,length(tel_no));
のほうがよいかも
    • good
    • 0

update test set tel_no = '##########';


ではダメなのですか?
    • good
    • 0

replaceではなくて、translate関数を使えばいいと思いますよ。


update test set tel_no = translate(tel_no, '0123456789', '##########');
http://docs.oracle.com/cd/E16338_01/server.112/b …

正規表現が使えるバージョンなら
update test set tel_no = regexp_replace(tel_no, '\d', '#');
とかでも。
http://docs.oracle.com/cd/E16338_01/server.112/b …

こんなのもありますね。
update test set tel_no = lpad('#',length(tel_no),'#'); --rpadでも同じです

参考になれば幸いです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す


おすすめ情報