我发现的唯一一件事是一次重命名一列:
ALTER TABLE table_name
RENAME COLUMN old_name TO new_name;
我阅读了Oracle文档,一次无法获得许多专栏的答案。
参考:https://docs.oracle.com/javadb/10.6.2.1/ref/rrefsqljrenamecolumnstatement.html
答案 0 :(得分:2)
从Oracle 18c开始,不可能在单个命令中重命名多个表列。
Oracle 18c SQL Language Reference包含下图,以说明RENAME_COLUMN_CLAUSE
命令的ALTER TABLE
的工作方式。不幸的是,除重命名外,几乎每个列属性都可以按组进行修改。
答案 1 :(得分:0)
您可以将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;