在进行业务开发过程中,需要实现获取到Oracle中指定数据库下的指定表,然后对这些指定的表修改字段类型,比如需要将类型Varchar2的大小从100修改为200。
①获取到Oracle中指定数据库下的指定表;
②修改指定表的类型sql;
③遍历执行修改不同表的指定字段类型;
序号 | 获取所有表sql | 说明 |
1 | | 可以查看所有表信息(即所有系统表+所有用户表); 具有【可以访问DBA_TABLES数据字典视图】权限; 或DBA授予您SELECT ANY DICTIONARY特权或SELECT_CATALOG_ROLE角色(其中任何一个都允许您查询任何数据字典表) |
2 | | 可以查看所有用户的表 |
3 | | 可以查看当前用户的所有表 |
4 | | 可以查看到所有用户的表结构信息 |
序号 | 表字段的操作SQL | 说明 |
1 | | ①给test_People表添加一个新字段workAddress类型为varchar2且大小为100;
②给test_People表添加2个新字段(workAddress类型为varchar2且大小为100;telNumber类型为varchar2且大小为11) |
2 | | 将test_People表的TYPENAME列名称修改为testname |
3 | | 将test_People表中的TYPENAME列的数据更新到testname列中 |
4 | | 将test_People表中的TYPENAME列修改为Varchar2类型且大小为200 |
5 | | 将test_People表中的testname列删除 |
- --首先查询出当前用户下的所有以test开头的表的表名称,然后使用FOR函数遍历出每个test开头的表名称执行修改每个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;