Kal*_*ina 4 sql database oracle select
我实际上并不想修改任何一个数据库,只是获取数据.
我知道如何使用这些连接字符串单独连接到每个数据库:
Provider=SQLOLEDB.1;Data Source={0};Initial Catalog={1};Integrated Security=SSPI;Persist Security Info=False;
Provider=OraOLEDB.Oracle.1;Data Source={0};User ID={1};Password={2};Persist Security Info=True;
Run Code Online (Sandbox Code Playgroud)
但是如何将这些重叠数据放在一起呢?这是否可能,特别是考虑到一个是Oracle,一个是SQL Server?或者,最好是单独对每个数据库执行SELECT语句,然后再匹配它们?
例如,我如何让所有10岁的学生都喜欢蓝色?

请注意,DatabaseB中的所有项都有一个映射到DatabaseA的ID,但不是相反.
我用MySQL,Oracle和SQL服务器完成了这个.您可以从中央MSSQL服务器到Oracle和其他MSSQL服务器创建链接服务器.然后,您可以使用链接服务器直接查询对象,也可以创建数据库中链接服务器表的同义词.
创建和使用链接服务器的步骤如下:
要创建到Oracle的链接服务器,请参阅以下链接:http://support.microsoft.com/kb/280106
更多关于同义词.如果您要在大量查询中使用这些链接服务器表,那么使用同义词来帮助维护代码可能是值得的.同义词允许您以不同的名称引用某些内容.
因此,例如,当从链接服务器中选择数据时,通常使用以下语法来获取数据:
SELECT *
FROM Linkedserver.database.schema.table
Run Code Online (Sandbox Code Playgroud)
如果您为Linkedserver.database.schema.table创建了DBTable1的同义词,则语法为:
SELECT *
FROM DBTable1
Run Code Online (Sandbox Code Playgroud)
它节省了一点打字加上如果您的链接服务器发生了变化,您不需要在代码中进行更改.就像我说的,如果你在很多代码中使用链接服务器,那么这真的很有用.
更谨慎的是,您可以在不同服务器上的两个表之间进行连接.这通常很痛苦.我发现你可以从不同的服务器中选择数据到临时表中,加入临时表通常可以加快速度.您的milage可能会有所不同,但如果您要加入不同服务器上的表,这种技术可以提供帮助.
如果您需要更多详细信息,请告诉我们.