web-dev-qa-db-ja.com

Oracle-SQLの特定の列からデータ全体を削除する

最近、私はOracle-sqlDELETEコマンドを使用して、特定の行を削除できることを知っています。したがって、DELETEコマンドのみを使用して、テーブルの特定の列からデータ全体を削除することは可能ですか? (列全体にnull値を設定してUPDATEコマンドを使用すると、DELETEの機能を実現できることを知っています)。

5
RajeeV VenkaT

[〜#〜] delete [〜#〜]

DELETEステートメントは、指定されたテーブルまたはビューからデータの行全体を削除します

特定の列からデータを「削除」するには、次のように更新します。

UPDATE table_name
SET your_column_name = NULL;

または、列がNOT NULL

UPDATE table_name
SET your_column_name = <value_indicating_removed_data>;

DDLを使用して列全体を削除することもできます。

ALTER TABLE table_name DROP COLUMN column_name;
15
Lukasz Szozda

Oracle 12cR2からの不可視タイプを使用します。

ALTER TABLE LOG1
MODIFY operation  INVISIBLE

特定の列をドロップするよりも優れています。表示する必要がある場合は、列名のVISIBLEで変更することで元に戻すことができます。

2
mAEHS

SQLでは、deleteは列ではなく行を削除します。

Oracleには3つのオプションがあります。

  • Updateを使用して、すべての値をNULLに設定します。
  • テーブルから列を削除します。
  • カラムを未使用に設定します。

最後の2つはalter tableを使用します:

alter table t drop column col;
alter table t set unused (col);
1
Gordon Linoff