在创建表和表结构的时候,如果想要小写需要在名称上面添加双引号,如果不添加oracle数据库会默认识别为大写
1.将表名和字段名改为大写
批量将表名变为大写
begin
for c in (select table_name tn from user_tables where table_name <> upper(table_name)) loop
begin
execute immediate 'alter table "'||c.tn||'" rename to '||c.tn;
exception
when others then
dbms_output.put_line(c.tn||'已存在');
end;
end loop;
end;
批量将空间内所有表的所有字段名变成大写 此方法可能导致溢出
begin
for t in (select table_name tn from user_tables) 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;
end;
end loop;
end;
将特点表PROPERTY_INFO的所有列名小写变大写
begin
for c in (select COLUMN_NAME cn from all_tab_columns where table_name='PROPERTY_INFO') loop
begin
execute immediate 'alter table PROPERTY_INFO rename column "'||c.cn||'" to '||c.cn;
exception
when others then
dbms_output.put_line('PROPERTY_INFO'||'.'||c.cn||'已经存在');
end;
end loop;
end;
2.将表名和字段名改为小写
①改表名为小写
begin
for c in (select table_name tn from user_tables where table_name <> lower(table_name)) loop
begin
execute immediate 'alter table '||c.tn||' rename to "'||lower(c.tn)||'"';
exception
when others then
dbms_output.put_line(c.tn||'已存在');
end;
end loop;
end;
②改字段名为小写
begin
for t in (select table_name tn from user_tables) 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 "'||lower(c.cn)||'"';
exception
when others then
dbms_output.put_line(t.tn||'.'||c.cn||'已经存在');
end;
end loop;
end;
end loop;
end;
注:
1.如果字段和表名都要改为小写,先改字段,再改表。
2.如果表名获取字段名改为小写以后,要在查询语句中将表名和字段名都要加上双引号
例.
表名小写 :select * from "department";
字段名小写:select "id" from "department";
网友评论