无法在动态库中找到函数 'libudfex.so'
Could not find function in dynamic library 'libudfex.so'
根据 IQ' udf 指南,
创建 udf 程序如下:
Declare the UDF to the server by using the CREATE FUNCTION or CREATE AGGREGATE FUNCTION
Write the UDF library identification function
Define the UDF as a set of C or C++ functions.
Implement the function entry points in C/C++.
- Compile the UDF functions and the library identification functions
- Link the compiled file into a dynamically linkable library.
在我完成所有程序并在 Interactice 中声明 CREATE FUNCTION 之后 SQL,我调用函数并得到如下错误响应:
`
Could not execute statement.
Could not find 'my_sample_function' in dynamic library 'libudfex.so'
SQLCODE=-621, ODBC 3 State="HY000" Line 1, column 1 SELECT
my_sample_function(test.a, test.b) as aaa FROM test WHERE test.a = 3
`
编译和链接动态链接库后,完成以下任务之一:
1.(推荐)更新 CREATE FUNCTION ... EXTERNAL NAME 以包含 UDF 库的显式路径名。
将UDF库文件放入所有IQ库所在目录。
2.Start IQ 服务器的库加载路径包括 UDF 库的位置。
3.On UNIX修改LD_LIBRARY_PATH内的start_iq启动脚本。虽然 LD_LIBRARY_PATH 对所有 UNIX 变体通用,但在 HP 上首选 SHLIB_PATH,在 AIX 上首选 LIB_PATH。
也许你错过了这一步
根据 IQ' udf 指南,
创建 udf 程序如下:
Declare the UDF to the server by using the CREATE FUNCTION or CREATE AGGREGATE FUNCTION
Write the UDF library identification function
Define the UDF as a set of C or C++ functions.
Implement the function entry points in C/C++.
- Compile the UDF functions and the library identification functions
- Link the compiled file into a dynamically linkable library.
在我完成所有程序并在 Interactice 中声明 CREATE FUNCTION 之后 SQL,我调用函数并得到如下错误响应:
`
Could not execute statement.
Could not find 'my_sample_function' in dynamic library 'libudfex.so' SQLCODE=-621, ODBC 3 State="HY000" Line 1, column 1 SELECT my_sample_function(test.a, test.b) as aaa FROM test WHERE test.a = 3
`
编译和链接动态链接库后,完成以下任务之一:
1.(推荐)更新 CREATE FUNCTION ... EXTERNAL NAME 以包含 UDF 库的显式路径名。 将UDF库文件放入所有IQ库所在目录。
2.Start IQ 服务器的库加载路径包括 UDF 库的位置。
3.On UNIX修改LD_LIBRARY_PATH内的start_iq启动脚本。虽然 LD_LIBRARY_PATH 对所有 UNIX 变体通用,但在 HP 上首选 SHLIB_PATH,在 AIX 上首选 LIB_PATH。
也许你错过了这一步