经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Oracle » 查看文章
2.6 数据库更新特定字段SQL/语句块
来源:cnblogs  作者:Smileing  时间:2019/6/14 9:35:47  对本文有异议

1.更新单表中某一字段

1.1适用于单条或者因为in条件1-1000条数据

下面是更改CMS_CONTRACT_INFO 表中合同编号为CMCC987最后更新时间为当前时间,或者注释里特定时间。

  1. 1 UPDATE CMS_CONTRACT_INFO CCI
  2. 2 SET CCI.LAST_UPDATE_DATE = SYSDATE
  3. 3 /* to_date('20190516 10:12:50','yyyyMmdd HH24:mi:ss')*/
  4. 4 WHERE CCI.CONTRACT_NO IN ('CMCC987'

 

1.2 使用where表条件可更改大批量数据,但改之前一定注意备份。

1.3 有时候需要根据条件往后推时间。我使用语句块来完成。

以下语句块是,完成根据条件( 你要更改的数据条件)完成每10分钟往后更新30条数据,数据的开始时间都由你设定。

  1. 1 --存储过程或语句块声明时使用
  2. 2 DECLARE
  3. 3 --定义更改时间变量
  4. 4 V_COMMIT_TIME DATE;
  5. 5 --定义你要打散数量
  6. 6 V_COUNT INT;
  7. 7 --你参数的类型和数据库一致
  8. 8 V_CONTRACT_NO CMS.CMS_CONTRACT_INFO.CONTRACT_NO%TYPE;
  9. 9 BEGIN
  10. 10 --初始化参数
  11. 11 V_COUNT := 1;
  12. 12 V_COMMIT_TIME := sysdate;
  13. 13 /* V_COMMIT_TIME := to_date('2018-12-10 00:00:01', 'yyyy-mm-dd hh24:mi:ss');*/
  14. 14 --把需要改的数据条件标识数据循环到CONTRACT_CURSOR
  15. 15 for CONTRACT_CURSOR in(SELECT CI.CONTRACT_NO FROM CMS_CONTRACT_INFO CI
  16. 16 WHERE CI.CONTRACT_NO in()group by CI.CONTRACT_NO)
  17. 17
  18. 18 LOOP
  19. 19 --根据循环的条件更新数据
  20. 20 UPDATE CMS.CMS_CONTRACT_INFO CI
  21. 21 SET LAST_UPDATE_DATE = V_COMMIT_TIME
  22. 22 WHERE CI.CONTRACT_NO = CONTRACT_CURSOR.CONTRACT_NO;
  23. 23 --超过30条更新下一次
  24. 24 IF V_COUNT = 30 THEN
  25. 25 --打印修改数目
  26. 26 DBMS_OUTPUT.PUT_LINE('更新:'||TO_CHAR(V_COUNT));
  27. 27 V_COUNT := 0;
  28. 28 --当前时间加10分钟一批
  29. 29 V_COMMIT_TIME := (V_COMMIT_TIME+10/1440);
  30. 30 COMMIT;
  31. 31 END IF;
  32. 32 --下一次更新
  33. 33 V_COUNT := V_COUNT + 1;
  34. 34 END LOOP;
  35. 35 DBMS_OUTPUT.PUT_LINE('更新:'||TO_CHAR(V_COUNT));
  36. 36 END;

 

原文链接:http://www.cnblogs.com/Smileing/p/11014821.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号