在Windows上安装pljava的问题

Rez*_*eza 2 postgresql pljava

在Windows 7 x64和PostgreSQL 9.0上安装pl/java时出错.

CREATE FUNCTION sqlj.java_call_handler()
  RETURNS language_handler AS 'pljava'
  LANGUAGE C;
Run Code Online (Sandbox Code Playgroud)

错误:

错误:无法加载库"C:/ Program Files/PostgreSQL/9.0/lib/pljava.dll":找不到指定的模块.

*** 错误 ***

错误:无法加载库"C:/ Program Files/PostgreSQL/9.0/lib/pljava.dll":找不到指定的模块.SQL状态:58P01

但我确信pljava.dll存在于C:/ Program Files/PostgreSQL/9.0/lib中

Grz*_*ski 9

我发现可以在Windows 7 64位上的PostgreSQL 9.0 64位上安装PL/Java过程语言(我有与你相同的错误消息).我看到(C:/Program Files路径)你有64位版本的PostgreSQL,所以你需要64位 JRE(假设C:\Program Files\Java\jre6):

  • pgFoundry下载PL/Java 64位二进制包 (即 pljava-x86_64-w64-mingw32-pg9.0-1.4.2.tar.gz)
  • 将存档解压缩到C:\Program Files\PostgreSQL\9.0\share\pljava目录
  • pljava.dll进入C:\Program Files\PostgreSQL\9.0\lib目录
  • 加入postgresql.conf(数据):
custom_variable_classes = 'pljava'
pljava.classpath='C:\\Program Files\\PostgreSQL\\9.0\\share\\pljava\\pljava.jar'
  • 添加到PATH(我的电脑→属性→高级→环境变量):
;C:\Program Files\Java\jre6\bin;C:\Program Files\Java\jre6\bin\server

(JRE_HOME如果你愿意,你可以创建另一个变量然后写;%JRE_HOME%\bin;%JRE_HOME%\bin\server)

之后重新启动PostgreSQL服务(postgresql-x64-9.0)并C:\Program Files\PostgreSQL\9.0\share\pljava\install.sql再次加载.校验:

postgres=# SELECT lanname FROM pg_language;
 lanname
----------
 internal
 c
 sql
 plpgsql
 java
 javau
(6 rows)
Run Code Online (Sandbox Code Playgroud)