为什么sqlalchmy func返回字符串而不是整数?

时间:2016-12-21 22:34:10

标签: python postgresql sqlalchemy

我们有一个带有存储过程的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

为什么它返回此字符串类型而不是函数返回的整数?

1 个答案:

答案 0 :(得分:0)

我已经回答了一个问题。查看发出的SQL,区别在于:

SELECT get_my_thing(someval)

并且

SELECT * FROM get_my_thing(someval)

前者是由

发出的
session.query(func.get_my_thing(someval))

我不确定如何发出后者的SQL