gpt4 book ai didi

python - psycopg2 查询参数类型

转载 作者:太空狗 更新时间:2023-10-30 02:34:09 24 4
gpt4 key购买 nike

我有一个使用 psycopg2 调用 postgresql proc 的 python 脚本。该过程具有以下签名。

CREATE FUNCTION utility_function(p_id_file bigint, p_size bigint, p_id_volume smallint, p_id_type_file bigint, p_id_user bigint) RETURNS void

当我用下面的代码调用它时,我得到这个错误...

Traceback (most recent call last):
File "/tmp/regenerate/regenerate.py", line 173, in <module>
execute_process(db, out_csv, out_file, start_date, end_date, limit, offset)
File "/tmp/regenerate/regenerate.py", line 57, in execute_process
db.execute(sql, (id_file, size, id_volume, id_type_file, id_user))
psycopg2.ProgrammingError: function utility_function(integer, integer, integer, integer, integer) does not exist
LINE 1: select * from utility_function(13456, 132456798, 0...
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.

我不知道如何将参数转换为正确的 postgresql 类型。

Python 代码如下所示。

sql = 'select * from utility_function(%s, %s, %s, %s, %s)'
logging.debug(db.mogrify(sql, (id_file, size, id_volume, id_type_file, id_user)))
db.execute(sql, (id_file, size, id_volume, id_type_file, id_user))

db.mogrify 返回这个:

select * from utility_regenerate_tsstream(13456, 132456798, 0, 42, 1324)

在此先感谢您的帮助:)山姆

最佳答案

您可以将查询中的类型指定为强制转换:

sql = 'select * from utility_function(%s::bigint, %s::bigint, %s::smallint, %s::bigint, %s::bigint)'

关于python - psycopg2 查询参数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9870261/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com