日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle 字段全大写,Oracle如何批量将表中字段名全转换为大写(利用简单存储过程)...

發布時間:2025/3/8 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle 字段全大写,Oracle如何批量将表中字段名全转换为大写(利用简单存储过程)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

今天查詢一個數據字段一直提示字符無效,明明在數據庫表字段中是存在的;

查詢后得知,數據庫表字段為小寫時,查詢需要將字段名小寫并加上雙引號;

表名同理,我這里表名是大寫,暫時不需要改。

搜到一個批量修改字段名為大寫的存儲過程,如下:

登陸到要修改的用戶下,

執行:

begin

for cl in (SELECT table_name,column_name from user_tab_columns WHERE column_name<>upper(column_name) and upper(column_name) not in('SIZE','CHECK')) loop

begin

execute immediate 'alter table '||cl.table_name||' rename column "'|| cl.column_name ||'" to '||upper(cl.column_name);

exception

when others then

dbms_output.put_line(cl.table_name||'.'||cl.column_name||'已存在');

end;

end loop;

end;

即完成該用戶下所有表字段名改為大寫的過程。

附上批量修改表名為大寫的存儲過程,以備后用:

-- oracle 批量修改表名為大寫(當前登錄用戶)

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;

再附 字段類型批量修改(此時表內無內容):

DECLARE

CURSOR TEMP IS SELECT TABLE_NAME,COLUMN_NAME,DATA_LENGTH FROM USER_TAB_COLUMNS WHERE DATA_TYPE = 'NVARCHAR2' AND ROWNUM < 100;

STR VARCHAR2(100) := '';

BEGIN

FOR S IN TEMP LOOP

STR := 'ALTER TABLE '||S.TABLE_NAME||' MODIFY('||S.COLUMN_NAME||' VARCHAR2(200))';

DBMS_OUTPUT.PUT_LINE(STR);

EXECUTE IMMEDIATE STR ;

END LOOP;

END;

總結

以上是生活随笔為你收集整理的oracle 字段全大写,Oracle如何批量将表中字段名全转换为大写(利用简单存储过程)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。