问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Oracle如何在将一个数据库中的所有表都加上某些字段。

发布网友 发布时间:2022-04-23 04:20

我来回答

3个回答

热心网友 时间:2022-04-08 04:42

需要用存储过程解决。

如数据库中存在两张表,要给两张表都增加两个同样名称同样属性的字段,需要用以下代码:

1、创建测试用表test和test1

create table test
(id int,
name varchar2(10));

create table test1
(id int,
name varchar2(10));

2、要为两个表同时增加id1和name1字段。使用代码:

declare 
v_sql varchar2(2000);
v_table_name varchar2(30);
cursor c1 is select table_name from user_tables;
begin
open c1;
loop --提取一行数据到c1
fetch c1 into v_table_name;
--判读是否提取到值,没取到值就退出
--取到值c_job%notfound 是false 
--取不到值c_job%notfound 是true
exit when c1%notfound;
v_sql:='alter table '||v_table_name||' add id1 int';
execute immediate v_sql;
v_sql:='alter table '||v_table_name||' add name1 varchar2(10)';
execute immediate v_sql;
end loop;--关闭游标
close c1;
end;

如图:

3、执行代码,成功无误后,查询test表和test1表结构:

热心网友 时间:2022-04-08 06:00

你的思路有点不准确,使用下面的语句就没有问题了
select distinct a.TABLE_NAME from user_tab_columns a where a.TABLE_NAME not in (SELECT b.TABLE_NAME from user_tab_columns b where b.COLUMN_NAME=‘MODIFIER’);
仔细想想你就明白为什么你写的不对了,希望能够解答你的疑惑。

提示:你并没有把包含指定列的表的情况除去追问我没弄清楚user_tab_columns视图包含的字段意义,谢谢了!现在理清楚了。

追答嗯,思路很重要

热心网友 时间:2022-04-08 07:35

declare
vstr_sql varchar2(2000);
cursor c1 is select distinct a.TABLE_NAME TABLE_NAME from user_tab_columns a
where a.TABLE_NAME not in (SELECT b.TABLE_NAME from user_tab_columns b where b.COLUMN_NAME=‘MODIFIER’);
begin
for rec in c1 loop
vstr_sql varchar2(2000):='alter table '||rec.TABLE_NAME||' add MODIFIER NVARCHAR2(120) not null)';
execute immediate vstr_sql;
end loop;
end;
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
剑道独尊 叶尘有孩子了吗 万达普惠万e贷怎么样? 有人在万e贷借过钱吗,服务怎么样? ViVO手机如何删歌 vivo手机本地音乐删除? vivo y17w自带的音乐怎么一下删很多歌 步步高y23l手机怎么一起删除全部音乐歌曲 睡眠不好爱做梦怎么回事 晚上睡觉老是醒还做梦怎么回事 CES 2024:奔驰将推出AI驱动的虚拟助手 oracle数据库表里有数据了,可以直接再添加一个字段吗? oracle数据库中怎样对多个表增加字段 十万元二分的利息一个月利息是多少? 农村信用社定期存5万和10万利率一样吗? 银行存定期一年十万跟二十万分别有多少利息 跟稳点的银行理财一年又相差多少? 银行存定期一年十万跟二十万分别有多少利息 跟稳点的银行理财一年又相差多少? 10万块钱年利率是8.99%一个月的利息是多少? 10万块钱年利率是8.99%一个月的利息是多少? 10万年年利率1.9月利率1.9有啥区别? 有一张在群里传的图 一堆女的 抖胸的 动态图 女生的胸是干什么用的? 银行定期存款1万5万10万20万利息是一样吗 脱光光女孩会跟带着胸罩的妈妈睡觉吗? jbl蓝牙音响可以开机听就是充不进电 银行存款十万或十五万一年定期,利息分别是多少? 偶然看到女生胸部走光就爱盯着看,是不是属于变态?并不是刻意去看的 真的是无意间看女生胸*,有些黑点,貌似乳晕。后有种想上厕所感觉,却只撒一点点?什么原因? 存款一万和十万存款利率是一样吗?一万和十万存半年怎么算?? 80e罩杯多大呢? 音响放时间久了为何充不进电 向oracle数据库表中添加一个新字段并让该字段在表的最前面 怎么实现向oracle数据库指定列的指定位置插入字符串 用微软官方win10安装程序选“立即升级这台电脑”升级后,原电脑文件会保... oracle数据库 怎么给表加个字段 怎么在oracle数据库的一张表中添加一另一张表的一个字段 微软win10升级工具在哪里下? oracle数据库如何加字段,可追加80分 微软官网怎么免费升级win10 oracle数据库插入特殊字符 win10家庭版可以去微软官方下专业版来升级吗? oracle 数据库 表增加字段 微软官网win10升级软件MediaCreationTool21H1在线升级下载的win10系统 文件在c盘哪里?怎么删除? 我是一个初学者,如何向oracle数据库表中插入数据 在微软官网升级win10无法安装,怎么办? 现在微软官网不能直接下载win10系统了,怎么升级win10正版系统? 在微软官网下载的win10升级工具升级后是不是还得激活? oracle数据库怎么增加一个字段的值 为什么我的华为手机用畅连通话话给扣了0.29元? 现在微软官网还能免费升级win10吗 Oracle数据库添加信息