JAVA外部函数执行失败
1.打开创建外部函数参数
sp_set_para_value(2,'ENABLE_EXTERNAL_CALL',1); --参数需要重启生效
2.服务器也要开dmagent代理
注册)启动代理服务
[root]# ./service.sh install
几个回车
service DmAgentService completed.
[root]# su - dmdba
cd /home/dmdba/dmdbms/tool/dmagent/service
修改启动脚本,配置JDK变量
vi DmAgentServiceexport export JAVA_HOME=/home/dmdba/dmdbms/jdk
./DmAgentService start
3.创建jar包目录(dmdba)
mkdir -p /home/dmdba/dmdbms/bin/external_jar
4.创建java外部函数(注意加粗部分)
RETURN varchar
EXTERNAL '**/home/dmdba/dmdbms/bin/external_jar/lyc.jar**'
"**com.dameng.externfunction.test.testa**" USING java;
RETURN int
EXTERNAL '**/home/dmdba/dmdbms/bin/external_jar/lyc.jar**'
"**com.dameng.externfunction.test.testAdd**" USING java;
5.执行调用
-- 然后正常调用即可
select testa('aa');
附java代码
static int num = 0;
public static int testAdd(int a, int b) {
System.out.println("a="+a+",b="+b);
return a + b;
}
public static String testStr(String str) {
return str + " hello";
}
public static int testStatic(String str) {
System.out.println("testStatic"+1111);
num++;
return num;
}
public static int testError(String str) {
//int a = 1/0;
return num;
}
public static String testa(String args) throws Exception{
return args+"_aa";
}
}
里面几个外部函数,只是一个有问题吗