无法在动态库中找到功能' libudfex.so'

时间:2016-07-18 07:44:38

标签: sybase redhat user-defined-functions udf sybase-iq

累积智商' udf指南,

创建udf程序如下:

  
      
  1. 使用CREATE FUNCTION或CREATE AGGREGATE FUNCTION将UDF声明到服务器

  2.   
  3. 编写UDF库标识函数

  4.   
  5. 将UDF定义为一组C或C ++函数。

  6.   
  7. 在C / C ++中实现函数入口点。

  8.   
  9. 编译UDF函数和库标识函数
  10.   
  11. 将已编译的文件链接到可动态链接的库中。
  12.   

在我完成所有过程之后,在Interactice SQL中声明CREATE FUNCTION,我调用函数并得到错误响应如下:

`

  

无法执行声明。

     

无法找到' my_sample_function'在动态库&libudfex.so'   SQLCODE = -621,ODBC 3状态=" HY000"第1行,第1列SELECT   my_sample_function(test.a,test.b)as aaa from test WHERE test.a = 3

`

1 个答案:

答案 0 :(得分:0)

http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc01034.1520/doc/html/jfo1254246965959.html

在编译和链接动态可链接库之后,完成以下任务之一:

1.(推荐)更新CREATE FUNCTION ... EXTERNAL NAME以包含UDF库的显式路径名。 将UDF库文件放入存储所有IQ库的目录中。

2.使用包含UDF库位置的库加载路径启动IQ服务器。

3.在UNIX上修改start_iq启动脚本中的LD_LIBRARY_PATH。虽然LD_LIBRARY_PATH对所有UNIX变体都是通用的,但HP上首选SHLIB_PATH,而AIX上首选LIB_PATH。

也许你错过了这一步