SQL SERVER链接服务器执行带参存储过程

SQL SERVER通过链接服务器,链接到ORACLE数据库,下面我要在SQL SERVER数据库上写一个存储过程,该存储过程需要用通过链接服务去取ORACLE数据库里的数据,该存储过程是含参数的存储过程。在SQL SERVER 数据库里创建一个存储过程来取ORACLE数据库里的一个表里的数据如下:

1,在SQL SERVER数据库上创建存储过程

USE [ProdDB]

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

-- =============================================

-- Author:  <Author,,Name>

-- Create date: <Create Date,,>

-- Description: <Description,,>

-- =============================================

CREATE PROCEDURE [dbo].[Test_Getdata_From_Oracle]

-- Add the parameters for the stored procedure here

@P_AS_OF_birthday  datetime

AS

BEGIN

declare @E_SQL  varchar(2000);

-- SET NOCOUNT ON added to prevent extra result sets from

-- interfering with SELECT statements.

set @E_SQL = ‘insert into test ‘ +

‘select * from openquery(ORACLE11G, ‘‘select * from test.test where birthday = ‘‘‘‘‘

+ CONVERT(varchar, @P_AS_OF_birthday, 111) + ‘‘‘‘‘ ‘‘) ‘;

print @E_SQL;

execute(@E_SQL);

END

GO

2,执行存储过程

exec Test_Getdata_From_Oracle ‘1979-01-01‘

Note:具体的如何建立ORACLE链接服务器,请参考博文:http://blog.csdn.net/waterxcfg304/article/details/43162403

时间: 2024-10-29 04:53:35

SQL SERVER链接服务器执行带参存储过程的相关文章

SQL使用链接服务器执行远程数据库上的存储过程

原文:SQL使用链接服务器执行远程数据库上的存储过程 --创建链接服务器 exec sp_addlinkedserver'server_tmp','','SQLOLEDB','远程服务器名或ip地址' exec sp_addlinkedsrvlogin'server_tmp','false',null,'用户名','密码' exec sp_serveroption'server_lnk','rpc out','true' --这个允许调用链接服务器上的存储过程 go --调用: exec ser

sql server 与oracle数据互导的一种思路--sql server链接服务器

思路:通过在sql server数据库中添加链接服务器,可以远程查询oracle数据库的表环境准备,安装sql server数据库,并安装好oracle驱动,在配置好tnsname文件中配置好oracle连接,本人用的sql server2008 R2,oracle11g测试,提供程序采用的OraOLEDB.Oracle(网上很多文章说这个不能成功,要选择Microsoft OLE DB Privider for oracle,可我选择这个配置成功,估计是不能同时存在两个,如果有两个,sql s

通过存储过程(SP)实现SQL Server链接服务器(LinkServer)的添加

1. 背景 当系统的微服务化做的不是很高的时候,部分功能要通过DB LinkServer 来实现跨 Server 查询,当然,有时候BI抽数据.DBA数据库维护可能也会创建LinkServer. 特别是当 DB迁移的时候,我们需要检查.创建 DB LinkServer. 2.脚本实现 下面是我们创建的一个存储过程,通过这个存储过程来实现简单.快速的添加链接服务器. USE [DBA_Manager] GO /****** Object: StoredProcedure [dbo].[USP_Cr

SQL Server 链接服务器的安全

一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 安全设置(Security Settings) 实现效果:用户A能看见能使用,B用户不能看见这个链接服务器: 实现效果:用户A能看见能使用,B用户能看见但是没有权限使用: 总结 参考文献(References) 二.背景(Contexts) 当需要用远程服务器数据库和本地进行数据交互的时候(例如导数据等),我们通常会在本地创建一个远程服务器的数据库链接,关于创建创建链接服务器可以参考:SQL

如何使用SQL Server链接服务器访问DB2 Server

首先,需要安装Microsoft OLE DB Provider for DB2 下载地址:http://download.microsoft.com/download/B/B/2/BB22098A-C071-415F-9269-2EB26CEFB562/DB2OLEDB_CN.exe安装以后,菜单多出一项: 接下来,运行“数据访问工具”详细进行配置. 假设DB2的配置信息如下所示 可访问的数据库地址:jdbc:db2://10.18.50.149:50000/BPMDB用户名:db2admin

sql server 链接服务器语句

--//创建链接服务器[在本地服务器创建] exec sp_addlinkedserver 'HEE','','SQLOLEDB','192.168.98.222' -- exec sp_addlinkedserver '链接服务器名称','','SQLOLEDB','远程地址'(版本不同时在远程地址处加上远程地址sql版本) --//登录链接服务器 EXEC sp_addlinkedsrvlogin 'HEE','false',null,'Euro','0987654321'

如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集?

如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集?(2006-12-14 09:25:36) 与这个问题具有相同性质的其他描述还包括:如何在SQL Server存储过程中获取另一存储过程的执行结果记录集?如何在存储过程中检索动态SQL语句的执行结果?如何实现类似SELECT * FROM (EXEC procedure_name @parameters_var) AS datasource ... 的功能?procedure_

问题:sqlserver 跨服务器连接;结果:Sql Server 跨服务器连接

Sql Server 跨服务器连接 用openrowset连接远程SQL或插入数据 --如果只是临时访问,可以直接用openrowset --查询示例 select * from openrowset('SQLOLEDB', 'sql服务器名'; '用户名'; '密码', 数据库名.dbo.表名) --导入示例 select * into 表 from openrowset('SQLOLEDB' ,'sql服务器名';'用户名';'密码' ,数据库名.dbo.表名) --创建链接服务器 exec

谈一谈SQL Server中的执行计划缓存(上)

原文:谈一谈SQL Server中的执行计划缓存(上) 简介     我们平时所写的SQL语句本质只是获取数据的逻辑,而不是获取数据的物理路径.当我们写的SQL语句传到SQL Server的时候,查询分析器会将语句依次进行解析(Parse).绑定(Bind).查询优化(Optimization,有时候也被称为简化).执行(Execution).除去执行步骤外,前三个步骤之后就生成了执行计划,也就是SQL Server按照该计划获取物理数据方式,最后执行步骤按照执行计划执行查询从而获得结果.但查询