惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
Hugging Face - Blog
Hugging Face - Blog
Recent Announcements
Recent Announcements
MongoDB | Blog
MongoDB | Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
G
Google Developers Blog
L
LangChain Blog
The GitHub Blog
The GitHub Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
GbyAI
GbyAI
MyScale Blog
MyScale Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
U
Unit 42
Martin Fowler
Martin Fowler
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
博客园 - 聂微东
大猫的无限游戏
大猫的无限游戏
M
MIT News - Artificial intelligence
A
About on SuperTechFans
Stack Overflow Blog
Stack Overflow Blog
V
V2EX

博客园 - 追逐苦痛

C# U9 二次开发 20260828001 - DataGridView 重写第一栏的序号栏位 20230509001 - DataTable 导出成Excel 20230425001 - DataGridView绑定了数据之后, 再添加CheckBox列的解决方案 20230424001 - 打开文件对话框OpenFileDialog类 ASP.net用Graphics实现的统计图(折线图、柱状图、饼图) 20190917002 - SQL 中处理交叉重复条件参考 20190917001 - 去除DataTable中重复的数据 20190410001 - 遍历控件参考 20180709001 - 委托传值 20180706001 - 动态添加 tabPage 20180519001 - DataTable Group by功能参考 20161020001 DataGridView 选中的 DataGridViewCheckBoxCell 不添加重复项 20161014006 DataGridView Combobox 数据绑定与传值 20161014001 DataGridView 单元格内容 自动计算 20161013001 DataGridView 数据转 DataTable 20161011001 treeView 递归 20160929001 Guid生成 20160815001 - 修改字段的长度 20160715001 - 分发与订阅 总结 20160712001 SQL server R2 更名
20200812001 - SQL openquery 传参数
追逐苦痛 · 2020-08-12 · via 博客园 - 追逐苦痛

select *  FROM openquery (ORACLE, 'select SFAB002  FROM DSDATA.VIEW_MO WHERE SFAADOCNO = ''A05-30D-2007000632''' )

-------------------------------------------------------------------

下面是一个很好的example,可以直接拿来用。我也经常把它当一个template。

复制代码

DECLARE @Sql VARCHAR(1000)
DECLARE @organizationID VARCHAR(10)
SELECT @organizationID = (SELECT ORGANIZATION_ID FROM MYORGS WHERE ORGANIZATION_NAME = 'MMT')
SET @Sql = 'SELECT * from tableName where organization_id ='+@organizationID
SET @Sql = 'SELECT * FROM OPENQUERY(LinkedServerName, ''' + REPLACE(@Sql, '''', '''''') + ''')'
EXEC(@Sql)

复制代码

-------------------------------------------------------------------

针对一些提问,我再补充说明一下为神马会有那么多的单引号。

复制代码

--如果我们不把执行语句放入字符串,那么语句应该是:

SELECT * from tableName where name = 'dan'

--但是,我们需要在Openquery中使用参数,所以,我们必须保留单引号。单变双实现字符转义。

SELECT * FROM OPENQUERY(BETSYVALVES,'SELECT * from tableName where name = ''dan''')

--最后,因为,我们需要使用Exec去执行已经形成的Command string,把上述语句变成字符串语句。我们必须对''进行转义,所以'' 就变成了'''',这就是Replace的主要工作,最后语句成了:

SELECT * FROM OPENQUERY(BETSYVALVES,'SELECT * from tableName where name = ''''dan''''')

复制代码