转换过来的数据库表中字段名都添加了"",有什么办法批量转换吗?或者写一个函数,传递表名转换也可以,这里有一个,但是有的时候会报列名重复
declare
v_sql varchar2(1000);
cursor cur is select 'alter table tablename rename column "'||t1.COLUMN_NAME||'" to '||upper(t1.COLUMN_NAME) as sqlstr
from user_tab_columns t1
where table_name=upper('tablename')
and not exists (select 1 from user_tab_columns t2 where t2.COLUMN_NAME=upper(t1.COLUMN_NAME) );
begin
for rur in cur loop
v_sql := rur.sqlstr;
execute immediate v_sql;
end loop;
end;
/
declare
v_sql varchar2(1000);
cursor cur is select 'alter table tablename rename column "'||t1.COLUMN_NAME||'" to '||upper(t1.COLUMN_NAME) as sqlstr
from user_tab_columns t1
where table_name=upper('tablename')
and not exists (select 1 from user_tab_columns t2 where t2.COLUMN_NAME=upper(t1.COLUMN_NAME) );
begin
for rur in cur loop
v_sql := rur.sqlstr;
execute immediate v_sql;
end loop;
end;
/
关注,字段名带有""是说这样:
create table test(
"DDD" number
);