プリペアドステートメント
これについての説明は、他のタイプの定数の章 マニュアルの :
大胆な強調鉱山。
プリペアドステートメントのパラメータは、実際にはリテラルを使用するではありません。 ただし、値を入力しました 、したがって、 type'string'
の形式は使用できません。 。他の2つのフォームのいずれかを使用して、すでに自分で見つけたように、値を別のタイプにキャストします。
例:
PREPARE foo AS SELECT $1::date;
EXECUTE foo('2005-1-1');
PQexecParams
と同様 libpqCライブラリ内
ドキュメント:
代替 、上記の引用で述べたように、それぞれのデータ型のOIDを paramTypes []
で渡すことです。 -実際にキャストが必要な場合。ほとんどの場合、Postgresがクエリコンテキストからデータ型を派生させることは問題なく機能するはずです。
データ型のOIDは、システムカタログ<から取得できます。 code> pg_type :
SELECT oid FROM pg_type WHERE typname = 'date';
正しい内部タイプ名を使用する必要があります。例: int4
integer
の場合 。
または、便利なキャストを使用して regtype
:
SELECT 'date'::regtype::oid;
タイプ名の既知のエイリアスも受け入れられるため、これはより柔軟です。例: int4
、 int
またはinteger
integer
の場合 。