可以在PostgreSQL存储过程中使用Python代码。例如:
var array = [(name: String, value: String)]()
// add elements
array.sort() { $0.name < $1.name }
// or
array.sort() { $0.0 < $1.0 }
但是如何从这段代码中包含一个python文件呢?
在PostgreSQL中运行的Python的当前目录是:
CREATE FUNCTION someProc()
RETURNS void AS $$
# Some Python3 code...
$$ LANGUAGE plpython3u;
我尝试了以下工作:
>>> os.getcwd()
... /var/lib/postgresql/9.3/main
由于许多明显的原因,这似乎不太好。有没有更好的方法导入python文件,或只是从python文件调用python函数?
编辑:导入文件没有任何特定的PostgreSQL方法。但最好的方法是在正确的答案中,这类似于我原来的解决方案,但它更好。
答案 0 :(得分:2)
这与从独立Python中的文件动态加载Python代码没什么不同:
PL / Python3(不受信任)只是在PostgreSQL后端进程中运行的cpython解释器,它自己运行的是同一个操作系统用户PostgreSQL。只有很少的差异 - 比如线程安全 - 它只是Python。
答案 1 :(得分:0)
您是否从文档中看到了这一点?