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

Pythonを使用してPostgreSQLOIDを翻訳するにはどうすればよいですか

    「OID」をtextに変換できます キャストするだけで- OID(オブジェクト識別子) を提供 実際には、 regtype (登録されたタイプのOIDサブタイプ)関数 pg_typeof()

    Postgresは通常、データ型 regtypeの値を表示します textとして ユーザーに。例:

    SELECT pg_typeof('2013-1-1'::date);
     pg_typeof
    -----------
     date
    

    内部的にはOIDです:

    SELECT pg_typeof('2013-1-1'::date)::oid;
     pg_typeof
    -----------
          1082
    

    クライアントが同じことをしない場合は、明示的なキャストで強制することができます:

    SELECT pg_typeof('2013-1-1'::date)::text;
    SELECT 1082::regtype::text;

    システムカタログからすべての列のタイプを取得する

    どのようにかは不明です 実際に型を取得します。完全な情報を取得するには、次のクエリを検討してください:

    SELECT attname
         , atttypid::regtype AS base_type
         , format_type(atttypid, atttypmod) AS full_type
    FROM   pg_catalog.pg_attribute
    WHERE  attrelid = 'public.tbl'::regclass  -- your table name here
    AND    attnum > 0
    AND    NOT attisdropped
    ORDER  BY attnum;
    
      attname   |          base_type          |         full_type
    ------------+-----------------------------+-----------------------------
     age_id     | integer                     | integer
     age        | text                        | text
     ageabk     | character                   | character(2)
     foo        | boolean                     | boolean
     log_up     | timestamp without time zone | timestamp without time zone
    

    format_type(..) 修飾子を含むタイプを表示します。




    1. 解決方法通知:未定義のインデックス:21行目のC:\ xampp \ htdocs \ invmgt \manufactured_goods\change.phpのID

    2. MySQLとPHP-一意ではないテーブル/エイリアス

    3. Oracleインターフェースの変更

    4. Hibernate 4.3.5 は v$session.program 構成プロパティを無視します