| 网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 |
![]() |
| Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道 |
SQL> EXEC DBMS_STATS.GATHER_TABLE_STATS(USER, 'T2') 网管有家www.bitscn.net
PL/SQL 过程已成功完成。 网管下载dl.bitscn.com
SQL> EXEC DBMS_STATS.GATHER_TABLE_STATS(USER, 'T3') 网管u家www.bitscn.net
PL/SQL 过程已成功完成。 网管bitscn_com
SQL> CONN YANGTK/YANGTK@YTK92已连接。
网管有家www.bitscn.net
SQL> CREATE TABLE T AS SELECT ROWNUM ID, OBJECT_NAME, MOD(ROWNUM, 2) TYPE FROM DBA_OBJECTS A;
网管有家bitscn.net
表已创建。
中国网管论坛bbs.bitsCN.com
SQL> ALTER TABLE T ADD PRIMARY KEY (ID); 网管网www_bitscn_com
表已更改。 网管有家www.bitscn.net
SQL> EXEC DBMS_STATS.GATHER_TABLE_STATS(USER, 'T') 网管联盟bitsCN@com
PL/SQL 过程已成功完成。 网管u家u.bitsCN.com
SQL> CREATE DATABASE LINK YTK102 CONNECT TO YANGTK IDENTIFIED BY YANGTK USING 'YTK102'; 网管网www_bitscn_com
数据库链接已创建。
网管bitscn_com
在这个例子中,需要更新YTK102数据库中T表的TYPE字段,如果T表中一条记录的ID可以在远端T1、T2、T3表的联合查询中查询到,则这条记录的TYPE应该更新为1,如果查询不到对应的记录,则需要更新TYPE的值为O,如果当前的TYPE的值已经满足要求,则不需要进行更新。 中国网管联盟bitsCN.com
最简单的方法莫过于更新两次,每次只更新一部分数据: 网管网www_bitscn_com
| SQL> SET TIMING ON SQL> BEGIN 2 UPDATE T SET TYPE = 1 3 WHERE TYPE = 0 4 AND ID IN 5 ( 6 SELECT T1.ID 7 FROM T1@YTK102 T1, T2@YTK102 T2, T3@YTK102 T3 8 WHERE T1.ID = T2.ID 9 AND T2.ID = T3.ID 10 ); 11 12 UPDATE T SET TYPE = 0 13 WHERE TYPE = 1 14 AND NOT EXISTS 15 ( 16 SELECT 1 17 FROM T1@YTK102 T1, T2@YTK102 T2, T3@YTK102 T3 18 WHERE T1.ID = T2.ID 网管网www_bitscn_com 19 AND T2.ID = T3.ID 20 AND T.ID = T1.ID 21 ); 22 END; 23 / |
网管有家bitscn.net
|
0
|
评论加载中…