oracle添加表的字段问题 表已经都建好了,但是后来的需求需要在多个表中添加一个相同的列,多多指教。求解。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 --简单点就用sql语句,你只要把下面查询语句的结果执行就可以了select 'alter table '||table_name||' add (col varchar2(200)) ;'from all_tableswhere owner='SCOTT'alter table DEPT add (col varchar2(200)) ;alter table EMP add (col varchar2(200)) ;alter table BONUS add (col varchar2(200)) ;alter table A add (col varchar2(200)) ; 什么意思?直接alter table table_name add newcol varchar2(10) not null 不行吗? --用sql语句来执行sql语句 (sqlplus里执行)scott@YPCOST> set echo off;scott@YPCOST> set heading off;scott@YPCOST> set feedback off;scott@YPCOST> spool test.sql;scott@YPCOST> select 'alter table '||table_name||' add (col varchar2(200)) ;'from all_tables 2 where owner='SCOTT';alter table DEPT add (col varchar2(200)) ;alter table EMP add (col varchar2(200)) ;alter table BONUS add (col varchar2(200)) ;alter table A add (col varchar2(200)) ;scott@YPCOST> spool off;scott@YPCOST> ed test.sql; --这个时候会有个记事本,你把头部去掉,把尾部去掉就 保存就可以了/*记事本里的内容scott@YPCOST> select 'alter table '||table_name||' add (col varchar2(200)) ;'from all_tables 2 where owner='SCOTT';alter table DEPT add (col varchar2(200)) ;alter table EMP add (col varchar2(200)) ;alter table BONUS add (col varchar2(200)) ;alter table A add (col varchar2(200)) ;scott@YPCOST> spool off;*/scott@YPCOST> start test.sql --这个就是执行记事本里的语句 beginfor i in(select table_name from user_tables) loopexecute immediate 'alter table '||i.table_name||' add col_name 数据类型(长度)';end; 日志业务考虑用触发器 用sql实现求两字符串的公共子串(有测试数据) 创建数据库的错误 求一个合格率的SQL 请问:如何把SQLSERVER中的表数据导入到LINUX下的ORACLE中? 如何在大型数据表(百万条记录以上)中快速访问及操作数据库记录,如何实现? 关于触发器问题。//在线问答 哪儿有ORACLE8I的下载啊 Oracle存储过程错误 oracle11g故障集群转移如何修改IP地址 linux下的Oracle安装包? vb 调用 oracle 使用 order 函数后,删除某一记录显示无法定位
select 'alter table '||table_name||' add (col varchar2(200)) ;'from all_tables
where owner='SCOTT'alter table DEPT add (col varchar2(200)) ;
alter table EMP add (col varchar2(200)) ;
alter table BONUS add (col varchar2(200)) ;
alter table A add (col varchar2(200)) ;
直接alter table table_name add newcol varchar2(10) not null
不行吗?
scott@YPCOST> set echo off;
scott@YPCOST> set heading off;
scott@YPCOST> set feedback off;
scott@YPCOST> spool test.sql;
scott@YPCOST> select 'alter table '||table_name||' add (col varchar2(200)) ;'from all_tables
2 where owner='SCOTT';alter table DEPT add (col varchar2(200)) ;
alter table EMP add (col varchar2(200)) ;
alter table BONUS add (col varchar2(200)) ;
alter table A add (col varchar2(200)) ;
scott@YPCOST> spool off;
scott@YPCOST> ed test.sql; --这个时候会有个记事本,你把头部去掉,把尾部去掉就 保存就可以了
/*记事本里的内容
scott@YPCOST> select 'alter table '||table_name||' add (col varchar2(200)) ;'from all_tables
2 where owner='SCOTT';alter table DEPT add (col varchar2(200)) ;
alter table EMP add (col varchar2(200)) ;
alter table BONUS add (col varchar2(200)) ;
alter table A add (col varchar2(200)) ;scott@YPCOST> spool off;*/scott@YPCOST> start test.sql --这个就是执行记事本里的语句
for i in(select table_name from user_tables) loop
execute immediate 'alter table '||i.table_name||' add col_name 数据类型(长度)';
end;