0

文档(http://deveiate.org/code/pg/PG/Connection.html#method-i-exec)建议插入布尔值或日期等类型,我应该使用如下代码:

db_object.exec("INSERT INTO dan_test_1 (one) VALUES ($1)",
    { :value => "true",
      :type  => 16,
      :format => 1
     } );

(我在 pg_type 表中查找了“16”。)

但是我不断收到诸如“无法格式化(PGError)”之类的错误。

我可以插入字符串和数字,很好,但是如何处理这些其他常见类型?

4

1 回答 1

1

您链接到的文档实际上建议使用常见的文本格式('t'对于 true,'2012-11-26'对于日期,...),如果需要,还可以在 SQL 中进行显式转换:

建议在查询中简单地添加显式转换以确保使用正确的类型,而不是指定类型 oid。

所以如果one是一个布尔列,你会想要这个:

db_object.exec("INSERT INTO dan_test_1 (one) VALUES ($1)", [ 't' ])

续集可能会帮助你,但你真的应该知道背后发生了什么。

于 2012-11-26T22:06:16.937 回答