假设我创建了一个表 -
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';
有没有其他方法可以实现此更新任务,实时考虑可能有相当多的列,并且所有列都必须一次更新相同的值?
我正在使用Oracle 11.2.0.1.0 - 64位生产
注意:通常情况下,所有列的更新值都相同。但是,例如,考虑一个学校数据库和一个好学生在所有科目中得分10/10分。 :-)
感谢。
答案 0 :(得分:3)
纯粹的 SQL 无法做到这一点。您必须在UPDATE语句中明确列出所有列。
并且,相信我使用优秀的文本编辑器并不困难。使用元数据可以在几秒钟内获得列名列表,您只需按照语法准备SQL语句。
如果您真的想动态,那么您需要在 PL / SQL 和(ab)使用EXECUTE IMMEDIATE
中执行此操作。我个人不会建议它,除非你只是为了学习目的而做。
答案 1 :(得分:0)
你可以试试这个:
UPDATE T1 SET AA='x',BB=AA,CC=AA;