我们有一个带有存储过程的postgresql数据库,它返回一个带有此定义的SETOF类型:
Column | Type | Modifiers
-------+---------+----------
my_id | integer |
然而,当我执行这样的功能时:
for result in session.query(func.get_my_thing(someval)):
print(result)
它给我这样的结果:
('(8968)',)
是的,这是一个看起来像单个元素元组的字符串元组。它绝对是一个字符串,即print(type(result[0]))
表示它的类型为str
。
为什么它返回此字符串类型而不是函数返回的整数?
答案 0 :(得分:0)
我已经回答了一个问题。查看发出的SQL,区别在于:
SELECT get_my_thing(someval)
并且
SELECT * FROM get_my_thing(someval)
前者是由
发出的session.query(func.get_my_thing(someval))
我不确定如何发出后者的SQL