ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

【Oracle】表名/列名,大/小写转换

2021-01-06 12:04:02  阅读:286  来源: 互联网

标签:begin end cn 列名 tablename VARCHAR2 表名 Oracle table


1、表名,小写转大写。如下:my_test转换MY_TEST

DECLARE
    v_tablename_x VARCHAR2(20);
    v_tablename_d VARCHAR2(20);
begin
    v_tablename_x:='my_test';
    v_tablename_d:='MY_TEST';
    execute immediate 'alter table "'||v_tablename_x||'" rename to '||v_tablename_d||'';
exception
    when others then
    dbms_output.put_line(v_tablename_d||'已存在');
end;

2、列名,小写转大写

DECLARE
    v_tablename_d VARCHAR2(20);

begin
    v_tablename_d:='MY_TEST';
    for c in (select COLUMN_NAME cn from all_tab_columns where table_name=v_tablename_d) loop
    begin
        execute immediate 'alter table "'||v_tablename_d||'" rename column "'||c.cn||'" to '||c.cn;
        exception
        when others then
        dbms_output.put_line(v_tablename_d||'.'||c.cn||'已经存在');
    end;
    end loop;
end;

3、表和列一起,小写转大写

DECLARE
    v_tablename_x VARCHAR2(20);
    v_tablename_d VARCHAR2(20);

begin
    v_tablename_x:='my_test';
    v_tablename_d:='MY_TEST';
    for c in (select COLUMN_NAME cn from all_tab_columns where table_name=v_tablename_x) loop
    begin
        execute immediate 'alter table "'||v_tablename_x||'" rename column "'||c.cn||'" to '||c.cn;
        exception
        when others then
        dbms_output.put_line(v_tablename_x||'.'||c.cn||'已经存在');
    end;
    end loop;

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

4、表和列一起,大写转小写

DECLARE
    v_tablename_x VARCHAR2(20);
    v_tablename_d VARCHAR2(20);

begin
    v_tablename_x:='my_test';
    v_tablename_d:='MY_TEST';

    for c in (select COLUMN_NAME cn from all_tab_columns where table_name=v_tablename_d) loop
        begin
            execute immediate 'alter table '||v_tablename_d||' rename column '||c.cn||' to "'||LOWER(c.cn)||'"';
            exception
            when others then
            dbms_output.put_line(v_tablename_d||'.'||c.cn||'已经存在');
        end;
    end loop;

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

5、列名,大写转小写

DECLARE
    v_tablename_d VARCHAR2(20);

begin
    v_tablename_d:='MY_TEST';

    for c in (select COLUMN_NAME cn from all_tab_columns where table_name=v_tablename_d) loop
        begin
            execute immediate 'alter table '||v_tablename_d||' rename column '||c.cn||' to "'||LOWER(c.cn)||'"';
            exception
            when others then
            dbms_output.put_line(v_tablename_d||'.'||c.cn||'已经存在');
        end;
    end loop;
end;

6、表名,大写转小写

DECLARE
    v_tablename_x VARCHAR2(20);
    v_tablename_d VARCHAR2(20);

begin
    v_tablename_x:='my_test';
    v_tablename_d:='MY_TEST';

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

 

标签:begin,end,cn,列名,tablename,VARCHAR2,表名,Oracle,table
来源: https://www.cnblogs.com/xiaostudy/p/14240256.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有