Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中使用参数调用postgres函数_Python_Postgresql - Fatal编程技术网

在python中使用参数调用postgres函数

在python中使用参数调用postgres函数,python,postgresql,Python,Postgresql,我在select_sql.sql文件中编写了一个postgres函数,如下所示: CREATE OR REPLACE FUNCTION select_vnf_func(IN vimid_i text) RETURNS void AS $$ BEGIN select * from vimzoneinfo where vimid=vimid_i; END $$language plpgsql; 现在我从python脚本调用此函数,如下所示: import os os.system("sudo -u

我在select_sql.sql文件中编写了一个postgres函数,如下所示:

CREATE OR REPLACE FUNCTION select_vnf_func(IN vimid_i text) RETURNS void AS $$
BEGIN
select * from vimzoneinfo where vimid=vimid_i;
END
$$language plpgsql;
现在我从python脚本调用此函数,如下所示:

import os
os.system("sudo -u postgres /usr/bin/psql --d vnflafdb -f /tmp/select_sql.sql")
vim_id = "vimid1"
os.system("sudo -u postgres /usr/bin/psql --d vnflafdb -c 'SELECT select_vnf_func(vim_id::text);'")
但我得到了一个错误: 错误:列vim_id不存在 第1行:选择SELECT_vnf_func(vim_id)

这里‘vim_id’是我试图传递给函数的参数。“vimid”是表中的实际列。 当函数调用中没有参数时,它工作。
请提出建议。

这似乎是个坏主意。如果您需要从Python调用Postgres,请使用其中一个可用的函数。是的……但不知何故,在我的生产环境中,psycopg2不可用。你还可以推荐其他的图书馆吗?该页面有几个链接。但是您需要安装其中任何一个,就像您需要安装psycopg2一样。为什么你不能这样做?这就是问题所在,我不能在生产服务器上进行任何安装…这就是我尝试此解决方案的原因。@user2594191 Psycopg是客户端软件。在本地机器上安装它,与运行Python的机器相同。