【发布时间】:2021-08-24 03:30:06
【问题描述】:
我正在做一个简单的练习,试图从表中选择用户:
main :: IO ()
main = do
conn <- connect localPG
mapM_ print =<< (query conn "select * from users where name = ?" (Only ("jane"::String)) :: IO [String])
我得到错误:
Incompatible {errSQLType = "int4", errSQLTableOid = Just (Oid 24592), errSQLField = "id", errHaskellType = "Char", errMessage = ""}
我正在使用https://hackage.haskell.org/package/postgresql-simple-0.6.4/docs/Database-PostgreSQL-Simple.html
PostgreSQL 的返回值似乎无法转换为 https://hackage.haskell.org/package/postgresql-simple-0.4.7.0/docs/Database-PostgreSQL-Simple-FromField.html 中提到的 Haskell 对象
请注意,我通过查询将其转换为 IO [String]。我应该将它投射到什么位置?
【问题讨论】:
-
您似乎从表中选择了所有内容,而您的类型注释仅指定了一个
String列。 -
@FyodorSoikin 实际上,比这更糟糕:给定的类型注释指定了多个
Char列。
标签: postgresql haskell