0

我想使用从 db2 查询生成的共享库。

我的共享库依赖于此boost,在我的机器中,位于/usr/local/lib.

当我尝试使用我的函数运行查询时出现错误:它们不起作用,因为 db2 找不到 boost 库,即无法解析库的位置。

如何判断db2库路径的位置以及我应该使用哪个环境变量?

我试图 ise userprofile 和 profile.env 但没有成功。

 # userprofile
 LIBPATH=/usr/local/lib:LIBPATH

 #profile.env
 DB2ENVLIST='LIBPATH ..other stuf'
4

1 回答 1

1

让我看看我是否正确理解了你的问题。您有依赖于其他一些库的 C 或 C++ 外部 UDF。如果是这样,我认为您应该设置 DB2 注册表变量,而不是您的环境变量:

export LD_LIBRARY_PATH=/usr/local/lib:$LIBPATH  # this must be in the global profile
db2set DB2LIBPATH=$LD_LIBRARY_PATH
db2set DB2ENVLIST="LD_LIBRARY_PATH otherstuff"

必须在环境中为实例所有者用户和 DB2 防护用户设置 LD_LIBRARY_PATH 变量,因为外部例程在这两者之一下运行。可能最好的方法是设置 /etc/profile. 这应该在执行db2set命令之前完成。

使用设置注册表变量后,db2set您必须重新启动 DB2 实例(db2stop forcethen db2start)。

于 2013-06-27T18:22:45.930 回答