使Oracle链接服务器工作的问题 [英] problem making Oracle linked server work

查看:60
本文介绍了使Oracle链接服务器工作的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,

我将Oracle Financials设置为我的一个SQL

服务器框的链接服务器。在运行测试查询时,我收到以下错误

消息:

OLE DB提供程序''MSDAORA''为列提供了不一致的元数据。

元数据信息在执行时被更改。

OLE DB错误跟踪[非接口错误:列''TEST_NUM''

(编译时序号2)对象''" MYUSER"。TEST_LINK"''被报告为

在编译时有一个

DBTYPE为130,运行时为5]。 />

具有所谓不一致的

元数据的列的Oracle数据类型为NUMBER,根据Oracle OLE DB文档

实际映射130是一个以null结尾的unicode字符

字符串,5是浮点数,139是可变长度的精确数值

,带有符号的刻度值。 Oracle NUMBER是一个通用的数字

类型,显然他们使用它而不是int,float等.Oracle

的家伙在测试表中用它来代替这个列因为在OF中,几乎每张桌子都使用了

。 (对于初学者来说,这是他们的

标识列的数据类型。)


OLE DB规范中有一些关于所有数据类型必须是

能够表示为DBTYPE_WSTR(130),但我得不到的是

我可以使用VB6代码连接到同一个Oracle实例和

MSDAORA提供商,解释NUMBER

列没有任何问题。那么为什么它可以从VB而不是作为链接服务器工作呢?并且

更重要的是,我如何使链接的服务器工作?


TIA

Hi all,

I set up our Oracle Financials as a linked server to one of my SQL
Server boxes. On running a test query, I got the following error
message:
OLE DB provider ''MSDAORA'' supplied inconsistent metadata for a column.
Metadata information was changed at execution time.
OLE DB error trace [Non-interface error: Column ''TEST_NUM''
(compile-time ordinal 2) of object ''"MYUSER"."TEST_LINK"'' was reported
to have a
DBTYPE of 130 at compile time and 5 at run time].

The Oracle datatype of the column with the supposedly inconsistent
metadata was NUMBER, which according to the Oracle OLE DB documentation
actually maps to 139. 130 is a null-terminated unicode character
string, 5 is a float, and 139 is a variable-length, exact numeric value
with a signed scale value. Oracle NUMBER is an all-purpose numeric
type, apparently they use that instead of int, float, etc. The Oracle
guy used it for this column in the test table because in OF it is used
in pretty much every table. (For starters it is the datatype of their
identity columns.)

There is something in the OLE DB spec about all datatypes having to be
able to be expressed as DBTYPE_WSTR (130), but what I don''t get is that
I can connect to the same Oracle instance using VB6 code and the
MSDAORA provider and there is no problem at all interpreting the NUMBER
columns. So why does it work from VB and not as a linked server? And
much more importantly, HOW DO I MAKE THE LINKED SERVER WORK?

TIA

推荐答案

如果你还没有完成最新的MDAC版本(2.8),你可以尝试升级它。您还可以运行MDAC组件检查器以确保二进制文件

与已安装的版本匹配。


-

希望这个帮助。


Dan Guzman

SQL Server MVP

" Ellen K" < EK ******* @ yahoo.com>在消息中写道

news:11 ********************* @ l41g2000cwc.googlegro ups.com ...
You might try upgrading the latest MDAC version (2.8) if you haven''t already
done so. You can also run the MDAC component checker to ensure the binaries
match for the installed version.

--
Hope this helps.

Dan Guzman
SQL Server MVP

"Ellen K" <ek*******@yahoo.com> wrote in message
news:11*********************@l41g2000cwc.googlegro ups.com...
大家好,

我将Oracle Financials设置为我的一个SQL
服务器盒的链接服务器。在运行测试查询时,我收到以下错误
消息:
OLE DB提供程序''MSDAORA''为列提供了不一致的元数据。
元数据信息在执行时被更改。 /> OLE DB错误跟踪[非接口错误:对象''MYUSER的列''TEST_NUM''(编译时序号2)。TEST_LINK''被报告
在编译时具有130的DBTYPE,在运行时具有5个。

具有所谓的不一致的元数据的列的Oracle数据类型是NUMBER,根据Oracle OLE DB文档实际上映射到139. 130是以null结尾的unicode字符
字符串,5是浮点数,139是可变长度,精确数值
带有签名规模价值。 Oracle NUMBER是一个通用的数字类型,显然他们使用它而不是int,float等.Oracle
家伙在测试表中使用它作为此列,因为在OF中使用它标识列的数据类型。)

OLE DB规范中有一些关于所有数据类型必须能够表示为DBTYPE_WSTR的内容( 130),但我没有得到的是
我可以使用VB6代码和
MSDAORA提供商连接到同一个Oracle实例,并且完全没有问题解释数字
列。那么为什么它可以从VB而不是作为链接服务器工作呢?而且更重要的是,我如何使链接的服务器工作?

TIA
Hi all,

I set up our Oracle Financials as a linked server to one of my SQL
Server boxes. On running a test query, I got the following error
message:
OLE DB provider ''MSDAORA'' supplied inconsistent metadata for a column.
Metadata information was changed at execution time.
OLE DB error trace [Non-interface error: Column ''TEST_NUM''
(compile-time ordinal 2) of object ''"MYUSER"."TEST_LINK"'' was reported
to have a
DBTYPE of 130 at compile time and 5 at run time].

The Oracle datatype of the column with the supposedly inconsistent
metadata was NUMBER, which according to the Oracle OLE DB documentation
actually maps to 139. 130 is a null-terminated unicode character
string, 5 is a float, and 139 is a variable-length, exact numeric value
with a signed scale value. Oracle NUMBER is an all-purpose numeric
type, apparently they use that instead of int, float, etc. The Oracle
guy used it for this column in the test table because in OF it is used
in pretty much every table. (For starters it is the datatype of their
identity columns.)

There is something in the OLE DB spec about all datatypes having to be
able to be expressed as DBTYPE_WSTR (130), but what I don''t get is that
I can connect to the same Oracle instance using VB6 code and the
MSDAORA provider and there is no problem at all interpreting the NUMBER
columns. So why does it work from VB and not as a linked server? And
much more importantly, HOW DO I MAKE THE LINKED SERVER WORK?

TIA



谢谢,Dan。


我的桌面和SQL Server盒目前都在运行与MDAC 2.7相同版本的确切版本

但是我觉得转向2.8不会有什么坏处。

Thanks, Dan.

My desktop and the SQL Server box are currently both running the exact
same version of MDAC 2.7 but I guess moving to 2.8 can''t hurt.


2.8解决了问题吗?

Did 2.8 solve the problem?


这篇关于使Oracle链接服务器工作的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆