【问题标题】:Could not find function in dynamic library 'libudfex.so'在动态库“libudfex.so”中找不到函数
【发布时间】:2016-11-20 17:35:14
【问题描述】:

根据 IQ' udf 指南,

如下创建udf过程:

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

  2. 编写UDF库识别函数

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

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

  5. 编译 UDF 函数和库识别函数
  6. 将编译后的文件链接到可动态链接的库中。

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

`

无法执行语句。

在动态库“libudfex.so”中找不到“my_sample_function” SQLCODE=-621, ODBC 3 State="HY000" 第 1 行,第 1 列 SELECT my_sample_function(test.a, test.b) as aaa FROM test WHERE test.a = 3

`

【问题讨论】:

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


    【解决方案1】:

    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。

    也许你错过了这一步

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-07
      • 2014-06-17
      • 1970-01-01
      • 2013-08-05
      • 2021-01-07
      • 2014-02-27
      • 1970-01-01
      相关资源
      最近更新 更多