最好的方法是批量修改,即每次修改5000条(一次修改不要超过一万条,否则影响性能).
成都创新互联公司-专业网站定制、快速模板网站建设、高性价比扎囊网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式扎囊网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖扎囊地区。费用合理售后完善,10年实体公司更值得信赖。
虽然在11g中,我们也可以选择使用merge命令,但你的这种情况最好先修改一部分然后看看影响,毕竟在生产环境作这样的操作风险很大。
如果是误操作,最好还是请DBA来恢复,虽然这样做会被挨骂,但总比错上加错,最后连挨骂的机会都没有要好得多。
如果对这些修改真的有信心,而只是从性能考虑,那可以用下面的方法(pk_col 是表的主键):
merge into xxx aa
using (select pk_col from xxx) bb
on (aa.pk_col=bb.pk_col)
when matched then
update set aa.datatype=66 where aa.datatype is null;
1、采用insert into values 语句插入一条,写很多条语句即可多条数据,这种主要针对于离散值以及一些基础信息的录入,如:insert into test(xh,mc) values('123','测试');
如果插入的数据有规律,可利用for、loop循环插入,主要用于批量生成测试数据
begin
for i in 1 .. 100 loop
insert into test(xh,mc) values(i||'','测试');
end loop;
end ;。
2、采用insert into selct from 语句来一次性插入一个集合,这种主要依据于要插入的数据源已经存储于数据库对象中,或者利用dual虚表来构造数据,经过加工后写入一个集合。
insert into test (xh,mx) select '123','测试' from dual;
3、采用plsql等工具、或者oracle的imp、impdp命令来导入,这种主要用数据库与数据库之间的大批量数据导入,导入的数据格式为plsql的pde、oracle的dmp等。dmp文件可使用
table_exists_action参数控制导入动作:replace替换原表,truncate清除原表数据再导入,append增量导入数据,当然impdp数据泵的导入要依赖于directory路径。
impdp 用户名/密码 dumpfile=123.dmp logfile=123.log directory=imp_dir tables=test table_exists_action=append
4、使用excel文件直接拷贝。这种主要用于要写入的数据已是excel文件或者行列分明的其它格式文件,每一列的值和表结构相对应,可直接打开表的行级锁,把数据拷贝进入。
打开行级锁方法:
select t.*,rowid from 表名 t where 1=2;
select * from 表名 where 1=2 for update;
直接把excel数据拷贝到表里
alter table table_name add (e number(4));
oracle中不能在某列前后固定插入,只会在最后列中追加
插入新列不影响前面的数据
其实列的顺序是无所谓的,你查找的时候select a,b,e,c,d from A 不就可以了么
如果你非要这样那只能复制新的A表到B表,然后删除掉A表,并重命名B表,如:
create table B as select a,b,e,c,d from A
drop table A
alter table B rename A
先把表里面的数据导出来备份。alter table T_USERRECHARGE add(PAYMENT varchar2(64))再把数据导进去就可以了。
使用comment on,举个例子:create table EMP( empid NUMBER); comment on table EMP is '员工信息'; --添加表描述 comment on column EMP.empid is '员工编号'; --添加列描述。
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款