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.
所以一定要注意安裝正確的版本。