Heim  >  Artikel  >  Datenbank  >  SQLServer 调用 ORACLE 数据库资源

SQLServer 调用 ORACLE 数据库资源

WBOY
WBOYOriginal
2016-06-07 15:24:351473Durchsuche

首先要在sqlserver中创建Oracle的服务器连接。以下以服务器连接“GW_ORCL”为例介绍。 1.查询表。 查询表有两种方法: 第一种 :select * from GW_ORCL..JKJK.TB_MEDICAL_APPOINTMENT; 解析:1.在服务器连接“GW_ORCL”后有两个小点; 2.两个小点之后的“JKJ

首先要在sqlserver中创建Oracle的服务器连接。以下以服务器连接“GW_ORCL”为例介绍。

1.查询表。

查询表有两种方法:

第一种:select * from GW_ORCL..JKJK.TB_MEDICAL_APPOINTMENT;

解析:1.在服务器连接“GW_ORCL”后有两个小点;

    2.两个小点之后的“JKJK”为ORACLE数据库的登陆用户名,而且必须大写。

    3.用户名之后就是数据库表了。

  第二种:select * from openquery(GW_ORCL,'select * from TB_MEDICAL_APPOINTMENT');

解析:1.这种方法网上据说会比第一种方法效率更高些,我这里未做验证。

2.调用存储过程。

(1)调用无参的存储过程

EXEC GW_ORCL..CNJK.TEST

解析:“TEST”为存储过程名;

(2)调用只有入参的存储过程

BEGIN
	declare @nf varchar(4);
	declare @orgid varchar(20);
	declare @name varchar()

	SET @nf = '2013';
	set @orgid = '42508128000';
	exec('begin pro_jktj_lnrzyjkglrsbb(?,?,?);end;',@nf,@orgid,@name) at GW_ORCL;
END;

(3)调用同时具有入参和出参的存储过程

begin
	declare @a varchar(100);
	declare @b varchar(1000);
	
	set @a = '123';
	set @b = '3432';
	exec('begin test(?,?); end;',@a,@b output) AT GW_ORCL;
	PRINT @b; 
end;

(4)调用存储过程返回结果

        暂时没有找到SQLSERVER调用ORACLE返回结果集的方法。我采用了一个间接的方式实现这个功能:先执行ORACLE存储过程将返回的结果集插入到ORACLE的数据表中,然后再查询数据表。



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn