替换列名称中的特定字符

时间:2015-04-07 17:26:38

标签: sql oracle replace

我有两个字段:

-name
-address

如何更改特定字母?例如:'a'已更改为'o',因此字段名称变为:

-nome
-oddress

我已经尝试了this,但它不起作用。任何帮助表示赞赏。

3 个答案:

答案 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”; 不是很性感……但几分钟就解决了!