fc2ブログ

(元)社内SEの徒然なる日記

SQLでVIEWの名前を変更してみた

■ VIEWの名称変更

OracleでVIEWの名前を変更するには、RENAME文を使用します。
/*
* 「SARASARA」を「NUMENUME」に変更する
*/

RENAME SARASARA TO NUMENUME


このRENAME文はVIEW以外にもテーブルやシーケンスの名前も変更できます。できますが、変更前の名前を使ったオブジェクトがあった場合には全て無効可されるらしいので、うかつに変更できないですね。

■ 理由

あるテーブルに項目を追加する必要に迫られたのですが、予備項目をつくっていないテーブルだったので、文字通りに列を追加する必要がありました。

なのですが、列の追加ってテーブルの最後の項目に追加されるので、並びがバラバラに崩れて気に入りません。そこで、テーブルの列の並びだけを変えたVIEWを作ってやろうかと思い立ちました。

ついでに、現状のテーブルも気に入らないので再作成。VIEWの名前は、元のテーブルと同じにするって要件で作業を開始。

1.新テーブル作成
2.新テーブルを読みこむVIEWを作成(仮名)
3.旧テーブルのデータを2のVIEWに移動(Insert)
4.旧テーブルを削除(DROP TABLE)
5.2のVIEWを仮名から旧テーブルと同じ名前に変更(RENAME)

ってところですかね。これをするために、VIEWのリネームをしたかったのです。

まぁ、データ移行後にVIEWを作成する手もあったのですが、項目名が旧テーブルとVIEWで同じにしているので、そっちの方がInsert文が書きやすいしミスも少ないかと思いまして。

■ 後書き

富士通のInterstage NavigatorってBIソフトを使って、いわゆるDWHを構築しているのですが、元になっているOracleのテーブルが、日本語名で作成されています。

わざわざ日本語名にしたのは、Navigator側で表示する項目名としてそのまま使用できるようにするためなのでしょうが、マルチバイト文字をテーブルや項目の名称に使うのが気に入りません。

わざわざ再作成をした真の理由は、この辺りの拘りだったりします。

投稿記事の一覧:http://harikofu.web.fc2.com/

--- blog end ---


スポンサードリンク

PageTop

コメント


管理者にだけ表示を許可する