sql >> データベース >  >> RDS >> PostgreSQL

PostgreSQL Cライブラリ(libpq)を使用してHSTORE列にアクセスするにはどうすればよいですか?

    libpqtypes hstoreをある程度サポートしているようです 。

    もう1つのオプションは、hstoreと直接対話しないようにすることです。 あなたのコードで。クライアント側でテキスト表現を処理しなくても、データベースでそれを利用できます。 hstoreフィールドをフェッチするとします。使用するだけです:

    SELECT t.id, k, v FROM thetable t, LATERAL each(t.hstorefield);
    

    または、古いPostgreSQLバージョンでは、風変わりで非標準のset-returning-function-in-SELECT形式を使用できます。

    SELECT t.id, each(t.hstorefield) FROM thetable t;
    

    (ただし、tから複数のレコードを選択する場合は注意してください このようにすると、LATERALで奇妙な結果が得られます。 大丈夫です。

    別のオプションは、hstore_to_arrayを使用することです またはhstore_to_matrix クエリを実行するとき、PostgreSQLの配列表現を扱うことに慣れているかどうか。

    hstore値を作成するには、配列を受け取るhstoreコンストラクターを使用できます。これらの配列は、array_aggを使用して作成できます。 VALUESを介して コード内でPostgreSQLの配列表現を処理したくない場合は句。

    PostgreSQL 9.4はhstoreタイプとjsonタイプの間の相互作用がはるかに優れている可能性があり、hstoreと対話するときにjson表現を使用できるようになるため、この混乱はすべて解消されるはずです。




    1. Oracleデータベースが自動コミットに設定されているかどうかを確認するにはどうすればよいですか?

    2. オンプレミスからAWSRDSにPostgreSQLデータベースを移行する際の一般的なエラー

    3. `initialize':スキームpostgresはレジストリ部分を受け入れません:postgres:@(または不正なホスト名?)(URI ::InvalidURIError)with Docker

    4. Openrowsetを使用したインポートエラー