mysql转oracle后表名自动引号小写问题

 

Navicat执行mysql转oracle后,表名以及字段自动加了引号,oracle默认都是大写,下面执行语句可以一键设置小写名称转大写.亲测可用!

begin
   for t in (select table_name tn from user_tables where table_name <> upper(table_name)) loop
       begin
          for c in (select column_name cn from user_tab_columns where table_name=t.tn) loop
              begin
                 execute immediate 'alter table "'||t.tn||'" rename column "'||c.cn||'" to '||c.cn;
              exception
                 when others then
                    dbms_output.put_line(t.tn||'.'||c.cn||'已经存在');
              end;
          end loop;

          execute immediate 'alter table "'||t.tn||'" rename to '||t.tn;
          exception
             when others then
                dbms_output.put_line(t.tn||'已存在');
       end;
   end loop;
end;

已有 0 条评论

    欢迎您,新朋友,感谢参与互动!