Oracle如何獲取指定表名稱批量修改表中的字段類型
一、業(yè)務(wù)需求
在進行業(yè)務(wù)開發(fā)過程中,需要實現(xiàn)獲取到Oracle中指定數(shù)據(jù)庫下的指定表,然后對這些指定的表修改字段類型,比如需要將類型Varchar2的大小從100修改為200。
二、思路分析
①獲取到Oracle中指定數(shù)據(jù)庫下的指定表;
②修改指定表的類型sql;
③遍歷執(zhí)行修改不同表的指定字段類型;
三、實現(xiàn)方法
3.1、獲取到Oracle中指定數(shù)據(jù)庫下的指定表
獲取所有表信息
序號 | 獲取所有表sql | 說明 |
1 | SELECT * FROM dba_tables; | 可以查看所有表信息(即所有系統(tǒng)表+所有用戶表); 具有【可以訪問DBA_TABLES數(shù)據(jù)字典視圖】權(quán)限; 或DBA授予您SELECT ANY DICTIONARY特權(quán)或SELECT_CATALOG_ROLE角色(其中任何一個都允許您查詢?nèi)魏螖?shù)據(jù)字典表) |
2 | select * from all_tables; | 可以查看所有用戶的表 |
3 | select * from user_tables; | 可以查看當前用戶的所有表 |
4 | select * from user_tab_columns; | 可以查看到所有用戶的表結(jié)構(gòu)信息 |
3.2、修改指定表的類型sql
表字段的操作
序號 | 表字段的操作SQL | 說明 |
1 |
| ①給test_People表添加一個新字段workAddress類型為varchar2且大小為100; ②給test_People表添加2個新字段(workAddress類型為varchar2且大小為100;telNumber類型為varchar2且大小為11) |
2 | alter table test_People rename column TYPENAME to testname; | 將test_People表的TYPENAME列名稱修改為testname |
3 | update test_People set testname=TYPENAME; | 將test_People表中的TYPENAME列的數(shù)據(jù)更新到testname列中 |
4 | alter table test_People modify TYPENAME VARCHAR2(200); | 將test_People表中的TYPENAME列修改為Varchar2類型且大小為200 |
5 | alter table test_People drop column testname; | 將test_People表中的testname列刪除 |
3.3、遍歷執(zhí)行修改不同表的指定字段類型
--首先查詢出當前用戶下的所有以test開頭的表的表名稱,然后使用FOR函數(shù)遍歷出每個test開頭的表名稱執(zhí)行修改每個test開頭表中TYPENAME列的字段類型為VARCHAR2且大小為200 BEGIN FOR r IN (select TABLE_NAME from user_tables WHERE TABLE_NAME like 'test%') LOOP execute immediate 'ALTER table '|| r.TABLE_NAME ||' MODIFY TYPENAME VARCHAR2(200)'; END LOOP; END;
--FOR函數(shù)的語法 FOR var IN 1..10 LOOP statement_list END LOOP;
總結(jié)
到此這篇關(guān)于Oracle如何獲取指定表名稱批量修改表中的字段類型的文章就介紹到這了,更多相關(guān)Oracle獲取指定表名稱內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
oracle 查詢當天數(shù)據(jù)的sql條件寫法
這篇文章主要介紹了oracle 查詢當天數(shù)據(jù)的sql條件寫法,需要的朋友可以參考下2017-04-04Oracle Database 10g數(shù)據(jù)庫安裝及配置教程
這篇文章主要介紹了Oracle Database 10g Release 2數(shù)據(jù)庫安裝及配置教程,感興趣的小伙伴們可以參考一下2016-08-08Oracle數(shù)據(jù)庫創(chuàng)建dblink的過程及其用法實例詳解
這篇文章主要給大家介紹了Oracle數(shù)據(jù)庫創(chuàng)建dblink的過程及其用法的相關(guān)資料,dblink是Oracle數(shù)據(jù)庫中用于連接不同數(shù)據(jù)庫實例的機制,允許用戶在一個數(shù)據(jù)庫實例中直接查詢或操作另一個數(shù)據(jù)庫實例中的數(shù)據(jù),需要的朋友可以參考下2024-12-12