select * from test..TEST.TEST1
服务器: 消息 7356,级别 16,状态 1,行 1
OLE DB 提供程序 'OraOLEDB.Oracle' 为列提供的元数据不一致。执行时更改了元数据信息。
OLE DB 错误跟踪[Non-interface error: Column 'DUMMY' (compile-time ordinal 1) of object '"TEST"."TEST"' was reported to have a DBTYPE of 129 at compile time and 130 at run time]。
这里我们发现当使用有精度的数据类型的时候,这个查询是不会报这种元数据类型不匹配的错误的。
这个是oracle的bug:3117040 在9.2.0.4.10中修正。
那么如果oracle的版本低于这个,避免在sqlserver的link seerver需要访问的column中使用没有精度(数据长度不定)的数据类型。