Oracle更新具有相同值的多个列
Oracle Update multiple columns with same value
假设我创建了一个 table--
Create table t1 (aa varchar2(5),bb varchar2(5),cc varchar2(5));
其中插入值--
insert into T1 values ('a','b','c');
commit;
现在在一种情况下,如果我想用相同的值更新所有列,那么我就是这样做的--
UPDATE T1 SET AA='x',BB='x',CC='x';
考虑到实时可能有相当多的列并且所有列都必须一次性更新为相同的值,是否还有其他方法可以完成此更新任务?
I am using Oracle 11.2.0.1.0 - 64bit Production
注意:通常情况下,所有列都更新相同值的情况非常少。但是,例如考虑一个学校数据库,一个好学生在所有科目中的分数都是 10/10。 :-)
谢谢。
纯SQL没办法做到。您必须在 UPDATE 语句中明确列出所有 列 。
而且,相信我,使用一个好的 文本编辑器 并不是一项艰巨的任务。使用元数据,您可以在几秒钟内获得列名列表,您需要做的就是根据语法准备 SQL 语句。
如果你真的想动态,那么你需要在PL/SQL和(ab)使用 EXECUTE IMMEDIATE
。我个人不建议这样做,除非你只是为了学习目的。
你可以试试这个:
UPDATE T1 SET AA='x',BB=AA,CC=AA;
假设我创建了一个 table--
Create table t1 (aa varchar2(5),bb varchar2(5),cc varchar2(5));
其中插入值--
insert into T1 values ('a','b','c');
commit;
现在在一种情况下,如果我想用相同的值更新所有列,那么我就是这样做的--
UPDATE T1 SET AA='x',BB='x',CC='x';
考虑到实时可能有相当多的列并且所有列都必须一次性更新为相同的值,是否还有其他方法可以完成此更新任务?
I am using Oracle 11.2.0.1.0 - 64bit Production
注意:通常情况下,所有列都更新相同值的情况非常少。但是,例如考虑一个学校数据库,一个好学生在所有科目中的分数都是 10/10。 :-)
谢谢。
纯SQL没办法做到。您必须在 UPDATE 语句中明确列出所有 列 。
而且,相信我,使用一个好的 文本编辑器 并不是一项艰巨的任务。使用元数据,您可以在几秒钟内获得列名列表,您需要做的就是根据语法准备 SQL 语句。
如果你真的想动态,那么你需要在PL/SQL和(ab)使用 EXECUTE IMMEDIATE
。我个人不建议这样做,除非你只是为了学习目的。
你可以试试这个:
UPDATE T1 SET AA='x',BB=AA,CC=AA;