从 oracle-sql 中的特定列中删除整个数据

Deleting entire data from a particular column in oracle-sql

最近开始学习Oracle-sql。我知道在 DELETE 命令的帮助下,我们可以删除特定的行。那么,是否可以仅使用 DELETE 命令从 table 中的特定列中删除整个数据。 (我知道使用 UPDATE 命令通过将空值设置为整个列我们可以实现 DELETE 的功能)。

在 SQL 中,delete 删除行而不是列。

您在 Oracle 中有三个选项:

  • 使用更新将所有值设置为 NULL
  • 从 table 中删除列。
  • 将列设置为未使用。

最后两个使用alter table:

alter table t drop column col;
alter table t set unused (col);

DELETE

The DELETE statement removes entire rows of data from a specified table or view

如果您想 "remove" 来自特定列的数据更新它:

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;

使用来自 oracle 12cR2.

的隐形类型
ALTER TABLE LOG1
MODIFY operation  INVISIBLE

它比删除特定的 column.If 要好,您需要可见,您可以通过更改列名称的 VISIBLE 来恢复。

update employee set commission=nvl2(commission,'','')

这将从列中删除所有数据