• 20200812001


    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''''')
    复制代码
  • 相关阅读:
    Spring-AOP切面编程(3)
    【SpringBoot】SpingBoot整合AOP
    反射--Reflection
    泛型--Generic
    C#系统库的源代码
    C#中的?
    C#语法糖
    C#初识LINQ
    C#委托和事件的区别
    C#中的lambda表达式
  • 原文地址:https://www.cnblogs.com/hutie1980/p/13492424.html
Copyright © 2020-2023  润新知