आप "OID" को text
. में बदल सकते हैं केवल कास्टिंग करके - प्रदान किया गया OID (ऑब्जेक्ट आइडेंटिफ़ायर)
वास्तव में एक regtype
है कोड>
(पंजीकृत प्रकारों के लिए OID-उपप्रकार) जैसे आपको फ़ंक्शन pg_typeof()
।
पोस्टग्रेज सामान्यतः डेटा प्रकार 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(..)
संशोधक सहित प्रकार प्रदर्शित करता है।