Postgresql 无法将元组或数组插入sql表--变量不明确
我正在尝试将元组或列表插入到sql表中,以便simple无法编译:Postgresql 无法将元组或数组插入sql表--变量不明确,postgresql,haskell,Postgresql,Haskell,我正在尝试将元组或列表插入到sql表中,以便simple无法编译: --1 newId <- execute cn "insert into mytable (var1, var2, ,) values (?, ?)" ["var1", "var2"] --2 newId <- execute cn "insert into mytable (var1, var2, ,) values (?, ?)" ("var1", "var2") --1 newId当您打开时,可能会发生
--1
newId <- execute cn "insert into mytable (var1, var2, ,) values (?, ?)" ["var1", "var2"]
--2
newId <- execute cn "insert into mytable (var1, var2, ,) values (?, ?)" ("var1", "var2")
--1
newId当您打开时,可能会发生这种情况。使用扩展名时,字符串文字的类型为(而不是string
)。
GHC正在努力选择tofields
的实例,因为它不知道s
是什么
当你说show时也会发生同样的事情。read
:没有任何指示GHC选择Show
或read
的特定实例
解决方法很简单:给文本一个类型签名
execute sqlSnippet (["var1", "var2"] :: [Text]) -- or [String] if you really want
详细说明。是否使用重载字符串
?@BenjaminHodgson,是的,然后使用(“var1”::Text)
…因此列表的类型为IsString s=>[s]
,而不是[String]
,GHC不知道如何选择既满足IsString
又满足ToField
的类型。给文本指定一个类型签名:[“var1”,“var2”]::[String]
@BenjaminHodgson我认为String
不是int
execute sqlSnippet (["var1", "var2"] :: [Text]) -- or [String] if you really want