小编Dom*_*tar的帖子

在dblink中选择并插入

我在oracle 10中的dblink中使用select into插入时遇到了一些麻烦.我使用以下语句:

INSERT INTO LOCAL.TABLE_1 ( COL1, COL2) 
SELECT  COL1, COL2
FROM REMOTE.TABLE1@dblink s
WHERE COL1 IN ( SELECT COL1 FROM WORKING_TABLE)
Run Code Online (Sandbox Code Playgroud)

当我运行语句时,以下是对DB Link上的远程服务器运行的内容:

SELECT /*+ OPAQUE_TRANSFORM */ "COL1", "COL2"
FROM "REMOTE"."TABLE1" "S"
Run Code Online (Sandbox Code Playgroud)

如果我只运行select而不执行以下插入运行:

SELECT /*+ */ "A1"."COL1"
     , "A1"."COL2"
  FROM "REMOTE"."TABLE1" "A1"
 WHERE "A1"."COL1" =
   ANY ( SELECT "A2"."COL1"
       FROM "LOCAL"."TABLE1"@! "A2")
Run Code Online (Sandbox Code Playgroud)

问题是在插入的情况下,enitre表被拉过dblink然后限制localy,这给表大小花费了相当多的时间.是否有任何理由添加插入会以这种方式改变行为?

oracle dblink insert

8
推荐指数
1
解决办法
5万
查看次数

标签 统计

dblink ×1

insert ×1

oracle ×1