• sql server远程访问Oracle数据库


    在sql server上新建了连接服务器后

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

    主题链接图标 Transact-SQL 语法约定

     
    OPENQUERY ( linked_server ,'query' )
    
    linked_server

    表示链接服务器名称的标识符。

    ' query '

    在链接服务器中执行的查询字符串。 该字符串的最大长度为 8 KB。

    OPENQUERY 不接受其参数的变量。

    OPENQUERY 不能用于对链接服务器执行扩展存储过程。 但是,通过使用四部分名称,可以在链接服务器上执行扩展存储过程。 例如:

     
    EXEC SeattleSales.master.dbo.xp_msver
    

    FROM 子句中对 OPENDATASOURCE、OPENQUERY 或 OPENROWSET 的任何调用与对用作更新目标的这些函数的任何调用都是分开独立计算的,即使为两个调用提供的参数相同也是如此。 具体而言,应用到上述任一调用的结果的筛选器或联接条件不会影响其他调用的结果。

    任何用户都可以执行 OPENQUERY。 用于连接到远程服务器的权限是从为链接服务器定义的设置中获取的。

    示例

    A.执行 UPDATE 传递查询

    以下示例针对示例 A 中创建的链接服务器使用 UPDATE 传递查询。

     
    UPDATE OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE id = 101') 
    SET name = 'ADifferentName';
    

    B.执行 INSERT 传递查询

    以下示例针对示例 A 中创建的链接服务器使用 INSERT 传递查询。

     
    INSERT OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles')
    VALUES ('NewTitle');
    

    C.执行 DELETE 传递查询

    以下示例使用 DELETE 传递查询删除示例 C 中插入的行。

     
    DELETE OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE name = ''NewTitle''');
    
  • 相关阅读:
    提高ASP.NET效率的几个方面
    危险字符过滤的类
    通过HttpModule实现数据库防注入
    字符串(含有汉字)转化为16进制编码进制
    C# 中的类型转换
    防范SQL注入攻击的代码
    微软笔试小感
    Debug和Trace配置小记
    C#动态地调用Win32 DLL中导出的函数
    Debug和Trace使用小记
  • 原文地址:https://www.cnblogs.com/Brainpan/p/4019271.html
Copyright © 2020-2023  润新知