declare ImpCursor cursor for
select WDS.MeterNo as MeterNo, f_meterday_date, f_meterday_used as Qty
from openrowset('msdaora','.';'scott';'123456','select f_meter_code, f_meterday_date, f_meterday_used from t_rp_meter_dayenergytemp') as DS
left join WaterDatasSetting WDS
on DS.f_meter_code=WDS.JDMeterNo
where f_meter_code is not null
and f_meterday_date is not null
and f_meterday_used>=0
order by f_meterday_date
提示错误信息:
消息 7308,级别 16,状态 1,过程 Usp_WaterImp,第 22 行
因为 OLE DB 访问接口 'msdaora' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。
问题一:“因为 OLE DB 访问接口 'msdaora' 配置为在单线程单元模式下运行”什么意思??? 什么叫做“单线程单元模式下运行”???
问题二:“该访问接口无法用于分布式查询”,什么叫做“分布式查询”??? 跨越数据库查询就叫做“分布式查询”吧。
问题三:应该怎样解决这样的问题呢???
问题四:“update openrowset() set set lable=1”这样可以修改对应的“Oracle”数据库中表的数据吧? openrowset()就像“表”一样。
declare @LastTime char(10)
set @LastTime = CONVERT(varchar(100),(select top 1 DATime from DataETL where MeterType='WM' order by DATime desc),23)
set @oraclesql='select f_meter_code, f_meterday_date, f_meterday_used from t_rp_meter_dayenergytemp where f_meterday_date >
'''+@LastTime+''''
declare ImpCursor cursor for select f_meter_code, f_meterday_date, f_meterday_used
from openrowset('msdaora','.';'scott';'123456',
''''+@oraclesql+'''')
问题五:这样“拼接字符串”做为参数好像不行啊??? 直接以‘select f_meter_code, f_meterday_date, f_meterday_used from t_rp_meter_dayenergytemp ’做为参数是没有问题的,那么“@LastTime” 变量怎样传入方法中呢???
问题六:写的“openrowset”方法访问本地“Oracle”数据库没有问题吧。
msdaora:MSDAORA是OLEDB FOR ORACLE的驱动
".":本地服务器
"scott":用户名
"123456":密码
"@oraclesql":操作语句
疑问:不用指定“Oracle”数据库的名字啊??? 数据库的名字叫做“orcl”...不用指定吗???
问题七:配置Oracle和MSSQL TNS
这里口令输不进去了,就算输进去也是提示“无法连接”的。
这个问题应该如何处理??? 为什么配置不正确呢???
问题八:通过“openrowset”实现“SQLServer”访问“Oracle”一定要配置“TNS”吗???