答案 0 :(得分:4)
此脚本会替换A
之后属于所有者SCOTT
的所有表的所有列名中的所有O
:
DECLARE
CURSOR alters IS
SELECT 'ALTER TABLE ' || owner || '.' || table_name || ' RENAME COLUMN ' ||
column_name ||' TO ' || REPLACE (column_name, 'A', 'O') AS statement
FROM dba_tab_columns
WHERE owner = 'SCOTT'
AND column_name LIKE '%A%';
BEGIN
FOR rec IN alters LOOP
EXECUTE IMMEDIATE rec.statement;
END LOOP;
END;
表SELECT
需要dba_tab_columns
个权限。请注意,它区分大小写。
玩得很开心;)
答案 1 :(得分:1)
这样做你想要的吗?
ALTER TABLE table_name
RENAME COLUMN old_name to new_name;
答案 2 :(得分:0)
我有同样的需求,我不得不在超过一千个字段中用“”替换“”。我使用 Excel 进行了连接,以便获得一千个不同的请求,例如: 更改表将列“a134 60 000”重命名为“a134_____60_000”; 不是很性感……但几分钟就解决了!