根据IQ'udf指南,
创建udf程序如下:
使用CREATE FUNCTION或CREATE AGGREGATE FUNCTION将UDF声明到服务器编写UDF库标识函数将UDF定义为一组C或C函数 . 在C / C中实现函数入口点 . 编译UDF函数和库标识函数将编译的文件链接到动态可链接的库中 .
在我完成所有过程之后,在Interactice SQL中声明CREATE FUNCTION,我调用函数并得到错误响应,如下所示:
`
无法执行语句 . 无法在动态库中找到'my_sample_function''libudfex.so'SQLCODE = -621,ODBC 3 State =“HY000”第1行,第1列SELECT my_sample_function(test.a,test.b)as aaa FROM test WHERE test.a = 3
`
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 .
也许你错过了这一步