PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

रूपांतरण टाइप करें। C में libpq में PostgreSQL OID मान के साथ मैं क्या करूँ?

मुझे यह पूछने के बाद जवाब मिला। मूल रूप से libpq-fe.h और postgres.h के साथ कैटलॉग/pg_type.h नामक एक फ़ाइल है। आपको libpq-fe.h और postgres.h को शामिल करने के बाद शामिल करने की आवश्यकता है, फिर आप TEXTOID जैसी परिभाषाओं तक पहुंच सकते हैं , BOOLOID , INT4OID आदि.

#include <stdio.h>
#include <postgres.h>
#include <libpq-fe.h>
#include <catalog/pg_type.h>

// ... snip ...

if (PQgetisnull(result, row, col)) {
  // value is NULL, nothing more to do
} else {
  char * value  = PQgetvalue(result, row, col);
  int    length = PQgetlength(result, row, col);

  switch (PQftype(result, col)) {
    case INT2OID:
    case INT4OID:
    case INT8OID:
      // process value as an integer
      break;

    default:
      // just default to a text representation
  }
}

आपको वास्तव में एक विस्तृत सूची प्राप्त करने के लिए pg_type.h में सभी OID को देखने की आवश्यकता है, या बस परीक्षण करें कि आपको मूल SELECT 't'::boolean करने से क्या मिलता है। क्वेश्चन आदि टाइप करें और स्विच का निर्माण केवल तभी करें जब आपको एक नए प्रकार के सपोर्ट की आवश्यकता हो।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कैसे Cosd () PostgreSQL में काम करता है

  2. SQLAlchemy, Psycopg2 और Postgresql COPY

  3. PostgreSQL कॉलम मौजूद नहीं है, लेकिन यह वास्तव में करता है

  4. DBeaver के माध्यम से PostgreSQL डेटाबेस का बैकअप और पुनर्स्थापना कैसे करें

  5. Postgres पंक्ति आकार की समझ बनाना