オラクル
転載の場合は出典を明記してください!
ORACLE を使用したことのある人なら誰でも、ORACLE での列名とテーブルの順序の変更が非常に面倒な作業であることを知っています。そのための簡単な方法を次に示します。
SQL> select object_id from all_objects where owner='SCOTT' and object_name='T1';
OBJECT_ID
----------
6067
SQL> select obj#,col#,name from sys .col$ where obj#=6067;
OBJ# COL#
---------- ----------
NAME
----------- --------------------------------------------------
6067 1
ID
6067 2
NAME
SQL> update sys.col$ set name='NEW_ID' ,col#=3 where obj#=6067 and name='ID';
1 行が更新されました。
SQL> update sys.col$ set name='MY_NAME',col#=1 where obj#=6067 and name='NAME';
1 行が更新されました。
SQL> update sys.col$ setcol#= 2 obj#=6067 およびcol#=3;
1 行が更新されました。
SQL> commit;
コミットが完了しました。
SQL> select * from scott.t1;
ID NAME
----- - ---- --------------------
3 cheng
2 yong
1 xin
2 gototop
1 topcio
2 yongxin
1 cyx
7 rows選択された .
SQL> 即時シャットダウン
データベースが閉じられました。
データベースがマウント解除されました。
ORACLE インスタンスがシャットダウンされました。
システム グローバル領域の合計 128159368 バイト
固定サイズ 732808 バイト
可変サイズ 11744051 2 tes
データベースバッファー 8388608 バイト
やり直しバッファー 1597440 バイト
データベースがマウントされました。
データベースが開きました。
SQL> select * from scott.t1;
MY_NAME NEW_ID
-------- ------------- ----------
cheng 3
yong 2
xin 1
gototop 2
topcio 1
yongxin 2
cyx 1
7 行が選択されました。
これまでテーブルに SCOTT.T1 を配置しました。列名と順序はすべて指定されています。列名を変更せずに順序のみを変更したい場合は、一度に UPDATE を実行するだけです。 SYS.COL$ の COL# と NAME が両方とも UNIQUE であるためです。
この方法には一定のリスクがありますが、特に大きなテーブルでは効果が明らかですが、一般的な方法を使用すると、より多くのストレージ領域、ロールバックセグメント、時間のオーバーヘッドが必要になります。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

WebStorm Mac版
便利なJavaScript開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。
