Oracle XE 21c与unixODBC报错:未找到数据源名称且无默认驱动
问题:Oracle XE 21c创建MS SQL Server公共同义词时ODBC报错IM002
环境与已完成配置
- 系统:Oracle Linux 8,已安装Oracle XE 21c,数据库、监听器、tnsnames等配置均正常
- 操作目标:创建指向MS SQL Server的公共同义词
- 已完成配置项:
- 创建数据库链接
- 生成
initMSSQL.ora文件 /etc/odbc.ini使用Microsoft ODBC Driver 18 for SQL Server完成配置
错误现象
ODBC日志持续报错:
[unixODBC][Driver Manager]Data source name not found and no default driver specified
排查结果
- isql、osql工具可正常登录MS SQL Server,排除ODBC驱动及数据源本身问题,推测问题出在Oracle端
- strace结果显示监听器已成功读取
/etc/odbc.ini:
5587 openat(AT_FDCWD, "/etc/odbc.ini", O_RDONLY) = 12 5587 fstat(12, {st_mode=S_IFREG|0644, st_size=522, ...}) = 0 5587 read(12, "[SQLGIS]\n#Driver=/opt/microsoft/"..., 4096) = 522
- 但尝试连接仍失败,相关strace日志:
19722 fstat(12, {st_dev=makedev(0x9, 0x7e), st_ino=269116215, st_mode=S_IFREG|0644, st_nlink=1, st_uid=54321, st_gid=54321, st_blksize=4096, st_blocks=88, st_size=44167, st_atime=1678198928 /* 2023-03-07T16:22:08.082714912+0200 */, st_atime_nsec=82714912, st_mtime=1678199198 /* 2023-03-07T16:26:38.111993698+0200 */, st_mtime_nsec=111993698, st_ctime=1678199198 /* 2023-03-07T16:26:38.111993698+0200 */, st_ctime_nsec=111993698}) = 0 19722 write(12, "[ODBC][19722][1678199198.120056][SQLGetDiagRecW.c][596]\n Exit:[SQL_NO_DATA]\n", 77) = 77 19722 close(12) = 0 19722 write(11, "hgopoer, line 240: got native error 0 and sqlstate IM002; message follows...\n", 77) = 77 19722 write(11, "[unixODBC][Driver Manager]Data source name not found and no default driver specified {IM002}\n", 93) = 93
补充信息
- 已尝试谷歌搜索到的多数针对该错误的解决方案,均无效
- 相同配置在Windows环境下可正常运行
内容的提问来源于stack exchange,提问作者Ints
相关产品推荐
相关产品推荐

