1、通过链接服务直接找到对应视图右击查询数据报错: 链接服务器 "oracle服务" 的 ole db 访问接口 "oraoledb.oracle" 为列提供的元数据不一致。对象 ""Oracle服务"."查询表"" 的列 "XXXX" (编译时序号为 1)在编译时有 16 的 "dbcolumnflags_isfixedlength",但在运行时有 0。
解决问题前:首先确认
其次确认:
后续发现问题:
我这边处理 是因为 Oracle 字符集 格式不一致 即需要设置 当前主机的 环境变量与对应的oracle服务环境变量一致 我的设定是:
NLS_LANG 为 SIMPLIFIED CHINESE_CHINA.ZHS16GBK
2. 设置完环境变量后:
PLSQL客户端重启后查询: select userenv('language') from dual
SQLserver中查询:select * from openquery( ORCL, 'select userenv(''language'') from dual ') a
查询结果需一致。
重要: 配置了 Oracle的 环境变量之后,如果SQLserver 的openquery语句 生效 必须重启 对应的服务 (主服务与代理服务)