oracle批量为表增删字段
来源:互联网 发布:mysql while do 编辑:程序博客网 时间:2024/06/01 07:51
create or replace procedure add_column as
--declare在oracle中指代的是“块”,用于处理一段业务逻辑的
--declare
--动态表表名前缀
tbl_name_prefix nvarchar2(255);
--表名
tbl_name nvarchar2(255);
--字段
add_column_name nvarchar2(255) := 'code_ssqx';
--存放sql语句的字符串
sql_str nvarchar2(500);
--字段是否已存在
is_exist number := 0;
c_name number;
ret number;
--记录动态表的的数量
mt_counter number := 0;
begin
for tbl_name_record in (select table_name
from USER_TABLES
where table_name like 'ZHZS_%') loop
mt_counter := mt_counter + 1;
dbms_output.put_line('tbl_name: ' || tbl_name_record.table_name);
-- oracle cols 查询表字段类型及长度 function
select count(column_name)
into is_exist
from cols
where table_name = upper(tbl_name_record.table_name)
and column_name = upper(add_column_name);
if (is_exist = 0) then
dbms_output.put_line('字段 [' || add_column_name || '] 在表' ||
tbl_name_record.table_name || '中不存在');
sql_str := 'alter table ' || tbl_name_record.table_name || ' add ' ||
add_column_name || ' varchar2(50) ';
dbms_output.put_line('添加列, 动态执行DDL语句: ' || sql_str);
---动态执行DDL语句
--execute immediate sql_str;
c_name := dbms_sql.open_cursor;
dbms_sql.parse(c_name, sql_str, dbms_sql.native);
ret := dbms_sql.execute(c_name);
dbms_sql.close_cursor(c_name);
else
dbms_output.put_line('字段 [' || add_column_name || '] 已经存在于表' ||
tbl_name_record.table_name || '中');
end if;
end loop;
dbms_output.put_line('共有: [' || mt_counter || '] 个动态表。');
--declare在oracle中指代的是“块”,用于处理一段业务逻辑的
--declare
--动态表表名前缀
tbl_name_prefix nvarchar2(255);
--表名
tbl_name nvarchar2(255);
--字段
add_column_name nvarchar2(255) := 'code_ssqx';
--存放sql语句的字符串
sql_str nvarchar2(500);
--字段是否已存在
is_exist number := 0;
c_name number;
ret number;
--记录动态表的的数量
mt_counter number := 0;
begin
for tbl_name_record in (select table_name
from USER_TABLES
where table_name like 'ZHZS_%') loop
mt_counter := mt_counter + 1;
dbms_output.put_line('tbl_name: ' || tbl_name_record.table_name);
-- oracle cols 查询表字段类型及长度 function
select count(column_name)
into is_exist
from cols
where table_name = upper(tbl_name_record.table_name)
and column_name = upper(add_column_name);
if (is_exist = 0) then
dbms_output.put_line('字段 [' || add_column_name || '] 在表' ||
tbl_name_record.table_name || '中不存在');
sql_str := 'alter table ' || tbl_name_record.table_name || ' add ' ||
add_column_name || ' varchar2(50) ';
dbms_output.put_line('添加列, 动态执行DDL语句: ' || sql_str);
---动态执行DDL语句
--execute immediate sql_str;
c_name := dbms_sql.open_cursor;
dbms_sql.parse(c_name, sql_str, dbms_sql.native);
ret := dbms_sql.execute(c_name);
dbms_sql.close_cursor(c_name);
else
dbms_output.put_line('字段 [' || add_column_name || '] 已经存在于表' ||
tbl_name_record.table_name || '中');
end if;
end loop;
dbms_output.put_line('共有: [' || mt_counter || '] 个动态表。');
end add_column;
删除字段类似操作
0 0
- oracle批量为表增删字段
- 比葫芦画瓢,oracle 为多表批量增加字段
- mysql和oracle增删改字段并且批量更新字段内容的操作
- oracle字段,表的增删改查
- Oracle 字段 增删改
- ORACLE 字段增删改
- 初学Oracle-------表增删改、字段增删改、数据增删改
- mysql sql语句为表批量怎加字段
- mysql sql语句为表批量怎加字段
- oracle批量更新一个表中的一个字段
- Oracle批量修改表名和字段名
- oracle批量更新一个表中的一个字段
- 【oracle】批量更改所有表的同一字段类型
- oracle plsql forall(批量增删改)
- Oracle对字段的增删改指令
- oracle增删改字段、建表、建序列
- 【internal】oracle增删字段影响分析
- 批量更改更改A表某字段为B表的name字段
- ACM Rank Table POJ
- 【bzoj1503】[NOI2004]郁闷的出纳员
- 自学hibernate框架以及自己总结的一些经验(一)
- 理解 JMeter 聚合报告(Aggregate Report)
- DM3730开发板使用uboot通过网络下载内核和文件系统 ubuntu下配置 TFTP
- oracle批量为表增删字段
- this的指向
- [IOS APP] 适用于iso9001质量管理体系认证
- 在Android中通过ndk读取本地文件
- 30种提高mysql处理速度的方法
- Windows系统下Java环境变量配置详解
- 红外解码数码管显示
- Python串口模块pySerial
- 重写spring源码达成场景需求,完美升级