本文发表在 rolia.net 枫下论坛因对ORACLE不熟而且没法测试,请用ORACLE和SQL SERVER的朋友们帮个忙,测一下下面的CASE:
目的: 在ORACLE LINKED SERVER上查询一个表或VIEW,把当天数据捣到sql server的表中
1. ORACAL上有个数据库XXX包含这样的VTABLE:
Code Varchar2(3)
EffectiveDate Datetime
Rate Numeber(12,9)
DDescription Varchar2(100)
输几条记录做测试用 ,请用不同日期,其中至少一个用当前日期
2. 在SQL SERVER 2005 上建立ORACLE LINKED SERVER,名称就叫ORALINKEDSrv好了
3. 在 SQL SERVER 2005上做下面的QUERY:
Declare @temp Table(Code Char(3),EffectiveDate Datetime,Rate Decimal(12,9))
Insert Into @temp(Code,EffectiveDate,Rate)
Select Code,EffectiveDate,Rate
From ORALINKEDSrv.XXX.SYSOWNER.VTABLE -- SYSOWNER请改用实际OWNER名
Where Diff(Day,EffectiveDate,getDate())<1
sELECT * FROM @temp
Go
4.假如3不行,改用OPENQUERY -- 对其中ORACLE的QUERY可能有错,请修改
Declare @temp Table(Code Char(3),EffectiveDate Datetime,Rate Decimal(12,9))
Insert Into @temp(Code,EffectiveDate,Rate)
Select Code,EffectiveDate,Rate
From OpenQuery(ORALINKEDSrv,'Select Code,trunc(EffectiveDate)=date(),Rate From XXX.SYSOWNER.VTABLE')
SELECT * FROM @temp
Go
请把3和4的结果贴在这里或者请PM,多谢!更多精彩文章及讨论,请光临枫下论坛 rolia.net
目的: 在ORACLE LINKED SERVER上查询一个表或VIEW,把当天数据捣到sql server的表中
1. ORACAL上有个数据库XXX包含这样的VTABLE:
Code Varchar2(3)
EffectiveDate Datetime
Rate Numeber(12,9)
DDescription Varchar2(100)
输几条记录做测试用 ,请用不同日期,其中至少一个用当前日期
2. 在SQL SERVER 2005 上建立ORACLE LINKED SERVER,名称就叫ORALINKEDSrv好了
3. 在 SQL SERVER 2005上做下面的QUERY:
Declare @temp Table(Code Char(3),EffectiveDate Datetime,Rate Decimal(12,9))
Insert Into @temp(Code,EffectiveDate,Rate)
Select Code,EffectiveDate,Rate
From ORALINKEDSrv.XXX.SYSOWNER.VTABLE -- SYSOWNER请改用实际OWNER名
Where Diff(Day,EffectiveDate,getDate())<1
sELECT * FROM @temp
Go
4.假如3不行,改用OPENQUERY -- 对其中ORACLE的QUERY可能有错,请修改
Declare @temp Table(Code Char(3),EffectiveDate Datetime,Rate Decimal(12,9))
Insert Into @temp(Code,EffectiveDate,Rate)
Select Code,EffectiveDate,Rate
From OpenQuery(ORALINKEDSrv,'Select Code,trunc(EffectiveDate)=date(),Rate From XXX.SYSOWNER.VTABLE')
SELECT * FROM @temp
Go
请把3和4的结果贴在这里或者请PM,多谢!更多精彩文章及讨论,请光临枫下论坛 rolia.net