怎样批量修改oracle数据库中某一个表中的某一列数据?

情况是这样的,我要把表pay_traffic_main中的transtime列的所有时间更新到近两天,请问批量修改的语句是什么,最好就按照我提供的条件写,写通用语句的话,我会懵。

最好的方法是批量修改,即每次修改5000条(一次修改不要超过一万条,否则影响性能).
虽然在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个回答  2016-05-30
update EAMS_MASTER set state to_date('2016/3/2 00:00:00', 'yyyy-MM-dd:hh24:mi:ss') where state= to_date('2016/3/2 00:00:00', 'yyyy-MM-dd:hh24:mi:ss')本回答被提问者采纳

如何批量修改oracle数据库中某一个表中的某一列数据?
1、构建临时表进行主键关联更新 需求:T1表有千万级别的数据量,需要更新这个表的字段a,b满足2个条件的记录。做法:一般业务会将条件通过excel表格提供给开发,那么开发首先需要将这个excel表格的内容插入到临时表T2中,考虑到a,b都不是主键,那么需要将a,b转化成主键后再插入到T2表中,T2表中还可以...

oracle数据库怎么批量修改数据?
1、使用以下代码即可同时更新一个表中几个字段的值:updateASET(C1,C2,C3,C4)=(SELECTC1,C2,C3,C4FROMBWHEREID=A.ID)Oracle数据库最新版本为OracleDatabase12c。2、update表名set(字段1,字段2,字段3,...)=(select数值1,数值2,数值3,...)where条件多个字段可以使用逗号隔开,每一个...

怎么实现oracle数据库某个表中某一列中日期的批量修改,而不修改时间...
需要用update语句。如test表中有如下数据:要将begintime改成当前日期时间,可用如下语句:12 update test set begintime=sysdate;commit;更新后结果:

如何批量修改oracle数据库中的某一个字段?
\\x0d\\x0aINSERT INTO kongxianji (a) VALUES ('12345(67)89');\\x0d\\x0aINSERT INTO kongxianji (a) VALUES ('12345(678)9');\\x0d\\x0aCOMMIT;\\x0d\\x0aSELECT * FROM kongxianji;\\x0d\\x0a\\x0d\\x0a-- 把a中的括号去掉,然后提交,到这一步可以查看表中数据的变化情况:\\x...

oracle数据库如何用update批量更新某列数据中的字段
可以使用编程,或者使用PL\/SQL连接Oracle数据库,登陆连接后,使用以下Sql:update table set id='TT'where a='XX';以上语句,就是将表table中列a='XX'的所有id列改为“TT”。条件可以添加多个,更新的字段也可以添加多个,比如:update table set id1='TT',id2='CC'where a='XX'and b='YY...

ORACLE数据库用PLSQL如何批量更新表里的某个字段的内容为文字加上另外...
可以用以下SQL试试,如果有一对多的情况在b.name=a.name后面加个 and rownum=1:upddate table_a a set a.lname =(select '前缀字符串'||b.lname from table_b b where b.id=a.id and b.name=a.name)

oracle 中 同时修改一个数据库中多个表里面的同一字段的长度
比如你要修改id长度是52 declare v_sql varchar2(1000);cursor cr is select table_name from user_tab_columns where column_name = 'ID';begin for r in cr loop v_sql := 'alter table '||r.table_name||' modify ID VARCHAR2(52)';execute immediate v_sql;end loop;end;...

oracle中如何更改一个表的一个字段属性(名称,类型)
修改字段的属性,名称方法--修改某一个字段的类型,当该字段不为null时ALTER TABLE 表名 ADD 字段 NUMBER(11,0) ; --新创建一列,期待的字段类型UPDATE 表名 SET 字段_bak= 字段;COMMIT; --复制旧字段值到新字段,dml的都需要提交ALTER TABLE 表名DROP COLUMN 字段;--删除掉旧字段ALTER TABLE ...

oracle如何通过两个表关联,修改其中一表中某列的数据?
b where b.g=a.g)where a.g in (select b.g from b)或者 update a set a.e=(select b.h from b where b.g=a.g)where exists (select null from b where b.g=a.g)需要保证a,b表一对一对应关系,如不是不可以这么写 条件那里看需要写了,如果a表大,用in ,反之用exists ...

oracle中有一亿多行数据的表,要全表更新某字段值,有什么号的方法?
你可以写一个存储过程来执行,由于数据量大,如果直接更新,数据库UNDO表空间肯定会满,会产生异常。过程如下,给你参考下。CREATE OR REPLACE PROCEDURE UPDATE_TABLES AS TYPE T_MW IS TABLE OF ROWID;T_T_MW T_MW;CURSOR V_CUR IS SELECT ROWID FROM T ;BEGIN OPEN V_CUR;LOOP FETCH V_CUR...

相似回答