ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

20200812001 - SQL openquery 传参数

2020-08-12 19:00:30  阅读:246  来源: 互联网

标签:语句 SQL tableName OPENQUERY Sql 20200812001 where openquery SELECT


 

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''''')
复制代码

标签:语句,SQL,tableName,OPENQUERY,Sql,20200812001,where,openquery,SELECT
来源: https://www.cnblogs.com/hutie1980/p/13492424.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有