重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 354|回复: 0
打印 上一主题 下一主题

sqlserver查询oracle数据

[复制链接]
跳转到指定楼层
楼主
发表于 2025-2-25 16:18:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 刘泽宇 于 2025-2-25 16:20 编辑

sqlserver配置了访问oracle的链接服务器后,可以查询到oracle上的数据

                               
登录/注册后可看大图

但这种查询方式会有一个很常见的问题,即查询速度慢,我这里20条记录的测试表都使用了6s

还有另外一种方式,使用openquery
openquery是在指定的链接服务器上执行指定的传递查询。 该服务器是 OLE DB 数据源。 OPENQUERY 可以在查询的 FROM 子句中引用,就好象它是一个表名。
OPENQUERY 也可以作为 INSERT、UPDATE 或 DELETE 语句的目标表进行引用。 但这要取决于 OLE DB 访问接口的功能。尽管查询可能返回多个结果集,但是 OPENQUERY 只返回第一个。

上面的查询可以使用这样的语句实现:
select * from openquery(orclpdb,'select * from employees');

如果sql中要包含单引号,就多敲一个'转义
如:select * from openquery(orclpdb,'select * from employees where first_name=''Steven''');

                               
登录/注册后可看大图


补充:openquery还可以用于update、insert、delete

UPDATE OPENQUERY ([linkedServerName], 'SELECT name FROM t2 WHERE id = 101') SET name = 'ADifferentName';

INSERT OPENQUERY ([linkedServerName], 'SELECT name FROM t3') VALUES ('NewTitle');

DELETE OPENQUERY ([linkedServerName], 'SELECT name FROM t4 WHERE name = ''NewTitle''');


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2025-3-12 20:41 , Processed in 0.235146 second(s), 23 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表