oracle如何更新大批量的数

2025-11-29 17:44:46

1、创建目标对象T_test,并插入10万条数据

以SCOTT用户登录系统并创建目标表T_test

[oracle@rac1 ~]$ sqlplus scott/

SQL*Plus: Release 10.2.0.1.0 - Production on Fri Sep 25 10:32:14 2015

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Enter password:

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, Real Application Clusters, OLAP and Data Mining options

SQL> create table T_test(id int,name varchar2(20),telphone varchar2(20));

Table created.

SQL>

T_test已成功创建。

oracle如何更新大批量的数

2、通过PL/SQL往T_test插入10万条随机数据(ID从1到100000,name为随机大小字符串,telphone为随机8为数字)

SQL> set serveroutput on;

SQL> set timing on;

SQL> declare

  2  begin

  3     for i in 1..100000 loop

  4        insert into T_test(id,name,telphone) values(i,(select dbms_random.string('U', 5) from dual),(select floor(dbms_random.value(10000000,99999999)) from dual));

  5       commit;

  6     end loop;

  7     dbms_output.put_line('ok!');

  8  end;

  9  /

ok!

PL/SQL procedure successfully completed.

Elapsed: 00:00:50.34

SQL>

SQL> select count(*) from T_test;

  COUNT(*)

----------

    100000

Elapsed: 00:00:00.11

SQL>

10万随机数据已成功插入。

oracle如何更新大批量的数

3、查询T_test的数据作为参考

oracle如何更新大批量的数

4、新建一个符合要求的临时表T_temp,并插入要更新的数据

创建临时表T_temp,必须有唯一列,再者就是更新列

说明:这里假设需要对符合要求的数据中的telphone字段进行更新

SQL> create table T_temp(id int, telphone varchar2(20));

Table created.

Elapsed: 00:00:00.05

SQL>

oracle如何更新大批量的数

5、通过PLSQL Developer工具插入要更新的数据

先执行select * from T_temp for update;

这时候会看到查询出来的结果那里有个锁,点击打开(如下图)

oracle如何更新大批量的数

6、再点击左边那个星号*(如下图)

oracle如何更新大批量的数

7、将要更新的数据在excel表格里面按T_temp表的格式处理,第一列留空(如下图)

说明:这里假设要更新ID为1到1000的人的telphone为88888888

         

oracle如何更新大批量的数

8、选中除列名以外的区域,复制(如下图)

oracle如何更新大批量的数

9、回到PLSQL Developer,点击黑色小三角形,进行全选(如下图)

         

oracle如何更新大批量的数

10、将刚刚复制的数据进行粘贴(如下图)

oracle如何更新大批量的数

11、点击绿色的√:记入改变(如下图)

oracle如何更新大批量的数

12、进行commit后查询T_temp表,数据已成功插入(如下图)

oracle如何更新大批量的数

13、说明:也可以用pl/sql工具里面的文本导入器(在这先不介绍)。

通过关联临时表对目标表进行update更新

关键性的update语句

UPDATE T_test t1

SET t1.telphone =

  (SELECT t2.telphone

   FROM T_temp t2

   WHERE t2.id = t1.id)

WHERE EXISTS

    (SELECT 1

     FROM T_temp t3

     WHERE t3.id = t1.id);

oracle如何更新大批量的数

14、然后再次查询表T_test

oracle如何更新大批量的数

15、全部数据已按要求更新完毕!

最后不要忘了将临时表T_temp删除,以免造成资源浪费

oracle如何更新大批量的数

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢