在PostgreSQL存储过程中可以使用Python代码。例如:
CREATE FUNCTION someProc()
RETURNS void AS $$
# Some Python3 code...
$$ LANGUAGE plpython3u;
但是我该如何从这段代码中包含一个Python文件呢?
PostgreSQL中运行的Python的当前目录为:
>>> os.getcwd()
... /var/lib/postgresql/9.3/main
我尝试了以下方法,它成功了:
CREATE FUNCTION someProc()
RETURNS void AS $$
import sys
sys.path.append("/dir/to/file")
from python_file import pythonFunction
# More Python code
$$ LANGUAGE plpython3u;
这种方式在很多方面都不太好。有没有更好的方法来导入Python文件,或者仅从Python文件中调用Python函数?
编辑:并没有特定的PostgreSQL方法来导入文件。但是下面正确答案中的最佳方法类似于我的原始解决方案,但更好。