Oracle如何獲取指定表名稱批量修改表中的字段類型
一、業(yè)務需求
在進行業(yè)務開發(fā)過程中,需要實現獲取到Oracle中指定數據庫下的指定表,然后對這些指定的表修改字段類型,比如需要將類型Varchar2的大小從100修改為200。
二、思路分析
①獲取到Oracle中指定數據庫下的指定表;
②修改指定表的類型sql;
③遍歷執(zhí)行修改不同表的指定字段類型;
三、實現方法
3.1、獲取到Oracle中指定數據庫下的指定表
獲取所有表信息
| 序號 | 獲取所有表sql | 說明 |
| 1 | SELECT * FROM dba_tables; | 可以查看所有表信息(即所有系統(tǒng)表+所有用戶表); 具有【可以訪問DBA_TABLES數據字典視圖】權限; 或DBA授予您SELECT ANY DICTIONARY特權或SELECT_CATALOG_ROLE角色(其中任何一個都允許您查詢任何數據字典表) |
| 2 | select * from all_tables; | 可以查看所有用戶的表 |
| 3 | select * from user_tables; | 可以查看當前用戶的所有表 |
| 4 | select * from user_tab_columns; | 可以查看到所有用戶的表結構信息 |
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列的數據更新到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函數遍歷出每個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函數的語法 FOR var IN 1..10 LOOP statement_list END LOOP;
總結
到此這篇關于Oracle如何獲取指定表名稱批量修改表中的字段類型的文章就介紹到這了,更多相關Oracle獲取指定表名稱內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Linux一鍵部署oracle安裝環(huán)境腳本(推薦)
這篇文章主要介紹了Linux一鍵部署oracle安裝環(huán)境腳本,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01
深入探討:Oracle中如何查詢正鎖表的用戶以及釋放被鎖的表的方法
本篇文章是對Oracle中查詢正鎖表的用戶以及釋放被鎖的表的方法進行了詳細的分析介紹,需要的朋友參考下2013-05-05
window10 安裝Oracle19C 和SQL Developer 的圖文教程
這篇文章主要介紹了window10 安裝Oracle19C 和SQL Developer 教程(圖文詳解),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03

