odbc isql db2: 0509-103 The module has an invalid magic number

claire_wu 2010-04-23 03:14:13
环境:AIX 64位

LIBPATH=/export/home/unixuser/sqllib/lib64:/usr/lib:/lib:/export/home/oracle/11.1.0.6_client/lib:/home/eng-sm/unixuser/claire/test/perl/unixodbc_install/lib

Q20F是一个DB2数据库,我在执行unixODBC isql时出现下面错误
unixuser\@dsliaa05 # > ./isql -v Q20F
[01000][unixODBC][Driver Manager]Can't open lib '/export/home/unixuser/sqllib/lib64/libdb2.a' : 0509-022 Cannot load module /export/home/unixuser/sqllib/lib64/libdb2.a.
0509-103 The module has an invalid magic number.
[ISQL]ERROR: Could not SQLConnect

我看网上也有类似错误,他们通过修改环境变量LIBPATH,将它指向64位lib库即可。我的LIBPATH已经是执行64位lib了,不知道为什么还不行。

...全文
867 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
bfxcxc 2012-05-04
  • 打赏
  • 举报
回复
一般从既有系统移植时,会因为编译出来的程序是32位,而动态库是64位的,刚才遇到这种情况。
可以用 file 命令查看程序是否64位

两种解决方法:
1.在 cc 编译参数增加 -q64 编译成64位的程序。
2.如果数据库有32位动态库的话,在.profile中增加:
LIBPATH=$ORACLE_HOME/.../lib32
LD_LIBRARY_PATH=$ORACLE_HOME/.../lib32
程序需要的其它数据库动态库由 lib 指向 lib32
claire_wu 2010-04-23
  • 打赏
  • 举报
回复
有人知道吗?

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧