PL/Python过程语言允许用Python 语言编写PostgreSQL函数。 我们需要安装python扩展程序。
要注意Windows 版本PostgreSQL和Python的版本对应关系。经验证,PostgreSQL 11 支持Python 3.6-3.8;PostgreSQL 9.6只支持Python 3.3;Postgresql 9.2-9.5只支持Python 3.2。
对于 PostgreSQL 9.6,安装plpython的方法如下:
1. 下载并安装Python 3.3。在https://www.python.org/download/releases/ 选择操作系统对应对应版本。
2. 进入python的安装路径下的DDLs文件夹,找到python3.dll。把它复制到Postgresql安装目录下的lib文件夹中,重命名为python33.dll(“33”代表python 3.3).
3. 重启PostgreSQL 使之生效
4. 执行如下测试代码:
create extension if not exists plpython3u;
create function pymax (a integer, b integer)
returns integer
as $$
if a > b:
return a
return b
$$ language plpython3u;
select pymax(1,2);
返回结果:2
这样就成功地创建并调用了一个由PL/Python编写的函数。
对于 PostgreSQL 11,安装plpython的方法如下:
- 下载并安装Python 3.6。在https://www.python.org/download/releases/ 选择操作系统对应对应版本
- 进入python的安装目录,找到python3.dll。把它复制到PostgreSQL安装目录下的lib文件夹中,重命名为python36.dll(“36”代表python 3.6).
- 重启PostgreSQL 即可生效
注意:
如果PostgreSQL没有安装python.dll程序,或者安装的python.dll版本不对,在执行“CREATE EXTENSION plpython3u” 后,会报出如下错误:
ERROR: could not access file "$libdir/plpython3": No such file or directory.
所以一定要注意安装正确的版本。