- 安装步骤
1.1 下载相应扩展包
https://network.pivotal.io/products/vmware-tanzu-greenplum#/releases/1193700 

 
1.2 上传并安装pljava-2.0.4-gp6-rhel7_x86_64.gppkg
[gpadmin@gp_master ~]$ gppkg -i pljava-2.0.4-gp6-rhel7_x86_64.gppkg 
重启数据库
[gpadmin@gp_master ~]$ gpstop -r
 
1.3 对database安装实例
[gpadmin@gp_master ~]$  psql -d dbName -c 'CREATE EXTENSION pljava;'
 
报错:
1: ERROR:  Cannot load libjvm.so library, check that it is available in LD_LIBRARY_PATH (Backend.c:243)
DETAIL:  libjvm.so: cannot open shared object file: No such file or directory
2: ERROR:  Cannot load libjvm.so library, check that it is available in LD_LIBRARY_PATH (Backend.c:243)
DETAIL:  libjvm.so: cannot open shared object file: No such file or directory
3: ERROR:  function java_call_handler() does not exist
4: ERROR:  function javau_call_handler() does not exist
 
解决思路,没有libjvm.so包,将java的server下的包加载到环境变量中(root权限,所有节点都需配置)
[root@gp_master ~]$ echo "$JAVA_HOME/jre/lib/amd64/server" > /etc/ld.so.conf.d/libjdk1.8.0_311.conf
[root@gp_master ~]$ ldconfig
 
重新加载
[gpadmin@gp_master ~]$ psql -d dbName -c 'CREATE EXTENSION pljava;'
CREATE FUNCTION
 
说明:前置条件,安装jdk1.8, 之前安装jdk11,但是PLJava注册一直失败。可能是由于jdk11没有jre,我自己给jre 解出来的原因,后面有时间可以试一试JAVA_HOME=JDK11 ,echo “$JAVA_HOME/jre/lib/amd64/server” > /etc/ld.so.conf.d/libjdk1.8.0_311.conf
 PG/Java安装完成
2.使用
 2.1 将java程序进行打包,并将jar文件上传到Greenplum master主节点,通过主节点分发至所有节点。
 
运行gpscp实用程序将jar文件复制到Greenplum Java目录。 使用-f选项指定包含master节点和segment节点主机列表的文件。
 [gpadmin@gp_master ~]$ gpscp -f hostfile_exkeys NGCustomerField.jar =:$GPHOME/lib/postgresql/java/
2.2 使用gpconfig程序设置Greenplumpljava_classpath服务器配置参数。 该参数列出已安装的jar文件。
 [gpadmin@gp_master ~]$ gpconfig -c pljava_classpath -v ‘NGCustomerField.jar’
2.3 运行gpstop实用程序-u选项重新加载配置文件。
 [gpadmin@gp_master ~]$ gpstop -u
2.4 以下SQL命令定义一个Java函数来测试jar文件中的方法:
 create or replace function customerfield(jsonstr text,type text,field text)
 RETURNS varchar
 as ‘com.maycur.ng_udf.NGCustomerField.NGCustomerField’
 LANGUAGE java;
SELECT set_config(‘pljava_classpath’, ‘NGCustomerField.jar’, false);
select customerfield(‘{“CF22”: {“currency”: “CNY”}, “CF79”: {“currency”: “CNY”}, “CF82”: {“currentTime”: 1600840217693}}’,‘DateTimeInput’,‘CF82’);
 












![[附源码]java毕业设计疫情防控下高校教职工健康信息管理系统](https://img-blog.csdnimg.cn/df6cd9eb1dc04a31bb722ce435b61ed9.png)






