<input id="0qass"><u id="0qass"></u></input>
  • <input id="0qass"><u id="0qass"></u></input>
  • <menu id="0qass"><u id="0qass"></u></menu>

    將oracle中的字段和表名全部修改為小寫

    java 專欄收錄該內容
    111 篇文章 1 訂閱

    在創建表和表結構的時候,如果想要小寫需要在名稱上面添加雙引號,如果不添加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";

    ?

    • 0
      點贊
    • 0
      評論
    • 4
      收藏
    • 一鍵三連
      一鍵三連
    • 掃一掃,分享海報

    ??2021 CSDN 皮膚主題: 書香水墨 設計師:CSDN官方博客 返回首頁
    實付
    使用余額支付
    點擊重新獲取
    掃碼支付
    錢包余額 0

    抵扣說明:

    1.余額是錢包充值的虛擬貨幣,按照1:1的比例進行支付金額的抵扣。
    2.余額無法直接購買下載,可以購買VIP、C幣套餐、付費專欄及課程。

    余額充值
    多乐彩