4

我发现的唯一一件事是一次重命名一列:

ALTER TABLE table_name
RENAME COLUMN old_name TO new_name;

我阅读了 Oracle 文档,但一次无法获得许多列的答案。

参考:https ://docs.oracle.com/javadb/10.6.2.1/ref/rrefsqljrenamecolumnstatement.html

4

2 回答 2

5

从 Oracle 18c 开始,无法在单个命令中重命名多个表列。

Oracle 18c SQL 语言参考包括下图来说明命令RENAME_COLUMN_CLAUSE的工作原理。ALTER TABLE不幸的是,除了重命名之外,几乎每个列属性都可以分组修改。

在此处输入图像描述

于 2019-04-19T02:50:11.897 回答
1

您可以将user_tab_columns字典视图用作循环语句的游标内的数据源

declare
  v_table_name varchar2(40):='mytable';
begin
  for c in ( select from user_tab_columns where table_name = upper(v_table_name) )
  loop
    execute immediate ('ALTER TABLE '||c.table_name||' RENAME COLUMN '||c.column_name
                                                   ||' TO new_'||c.column_name);
  end loop;
end;
于 2019-04-18T17:01:59.913 回答