在MSSQL中,openquery 方式访问 Oracle 是没法加参数的,因此可以通过如下方式访问:
declare @datetoday datetime;
set @datetoday = dateadd(d,-1,getdate());
select * from MESDBLINKEDSERVER..MESUSER.RCTH where THFNSHDT>@datetoday
但要注意以下问题:
1、 Oracle 对象必须大写
2、 Oracle Number 类型必须指定最大长度 ,如 number(12) ,不然会报如下错误
【链接服务器"MESDBLINKEDSERVER" 的OLE DB 访问接口"MSDAORA" 为列提供的元数据不一致。对象""MESUSER"."RPT_AS_INOUT"" 的列"INPUT" (编译时序号为10)在编译时有130 的"DBTYPE",但在运行时有5。】