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' ])

Sequel が役立つかもしれませんが、とにかく自分の背後で何が起こっているのかを知っておく必要があります。

于 2012-11-26T22:06:16.937 に答える