【问题标题】:Why does sqlalchmy func return strings instead of integer?为什么 sqlalchemy func 返回字符串而不是整数?
【发布时间】:2016-12-22 17:35:53
【问题描述】:

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

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

【问题讨论】:

    标签: python postgresql sqlalchemy


    【解决方案1】:

    我正在回答。查看发出的 SQL,两者之间的区别是:

    SELECT get_my_thing(someval)
    

    还有

    SELECT * FROM get_my_thing(someval)
    

    前者是由

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

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

    【讨论】:

    • 从函数中创建一个alias,并按照select_from 中的使用说明进行操作。该示例专门针对 postgresql。
    猜你喜欢
    • 2017-04-05
    • 2018-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-28
    • 2018-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多