python - 如何在 pl/python 中对查询的 WHERE 子句进行参数化?

标签 python plpython

friend :

一直在尝试将参数化为 pl/python 中的查询 - 并且我肯定在这里缺少一些简单的东西;我尝试过在变量名称前添加 % 和 $,但没有成功。

(也无法将结果变量传递到Python日志中 - 但这是一个差异问题!我确实设置了日志 - 可以向它发送文字字符串 - 但已经删除了很多代码此处清晰)

CREATE OR REPLACE FUNCTION footest0 (param_key integer) RETURNS text AS $$

# 1) SELECT from record based on parameter param_key:

rv = plpy.execute("SELECT name_key,address_key FROM file WHERE foreign_key = param_key)

name = rv[0]["name"]
address = rv[0]["address"]

# how to put results into the log?:
logging.info('  record: %(case)s')

$$ LANGUAGE plpythonu;

最佳答案

使用$n表示法:

st = "SELECT name_key,address_key FROM file WHERE foreign_key = $1"
pst = plpy.prepare(st, [ "integer" ])
rv = plpy.execute(pst, [ param_key ])

关于python - 如何在 pl/python 中对查询的 WHERE 子句进行参数化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6381043/

相关文章:

python - 持续从雅虎财经检索 cookie 和 crumb 以进行历史数据下载

python - 使用剪刀将多边形偏移米

macos - 使用 python 2.7 在 mac 上安装 plpython

postgresql - 从 plpython/Postgis 返回 SETOF 点

具有给定角色的 PostgreSQL 触发器

Python 可以打开文件,PL/Python 不能

python - 如何处理名称冲突的 python 包?

python - 如何读取 pandas dataframe 中的 json 并将一列值更改为大写并保存 json 文件

python - 如何使用 Travis CI 测试 Pl/Python PostgreSQL 程序?

python - py.test 无法处理创建文件