दिलचस्प पोस्ट
जावास्क्रिप्ट मल्टीथ्रेड है? कैसे अनुकूलित करें <input type = "file">? कैसे जावा के उपयोग से फ़ोल्डर खोलें JavaScript में कैश साफ़ करें जावा दो सूचियों की तुलना करें जेपीईजी छवि को सी # बेस 64 स्ट्रिंग Google मानचित्र एपीआई की दूसरी सीमा तक की सीमित सीमाएं नामांकित पैरामीटर के साथ मूल क्वेरी "असल में सभी नामित पैरामीटर सेट नहीं किए गए हैं" के साथ विफल रहता है उप-निर्देशिकाओं को संरक्षित करते समय एक जीआईटी रिपॉजिटरी को कैसे विभाजित किया जाए? एसडीकार्ड सामग्री मौजूद है लेकिन उन्हें देख नहीं सकते आंत के लिए arc4random () के परिणाम कास्टिंग करते समय क्रैश ActionBarActivity पर AppCompatActivity की वृद्धि क्या है? बूटस्ट्रैप कैरोसेल एकाधिक फ़्रेम एक ही बार में ड्रॉप-डाउन फाइल को मानक एचटीएमएल फ़ाइल इनपुट में खींचें क्लास लाइब्रेरी से HTML एक्सचेंज

ओरेकल में किसी तालिका से कॉलम नाम कैसे प्राप्त हो सकते हैं?

मुझे स्तंभ नाम पाने के लिए डेटाबेस को क्वेरी करने की आवश्यकता है, तालिका में डेटा के साथ भ्रमित होने के लिए नहीं। उदाहरण के लिए, अगर मेरे पास EVENT_LOG नामक तालिका है जिसमें eventID , eventType , eventDesc , और eventTime , तो मैं उन फ़ील्ड नामों को क्वेरी से पुनः प्राप्त करना चाहेंगे और कुछ और नहीं

मैंने पाया कि यह कैसे करें:

  • माइक्रोसॉफ्ट एसक्यूएल सर्वर
  • माई एसक्यूएल
  • PostgreSQL

लेकिन मुझे यह जानना चाहिए कि ओरेकल में यह कैसे किया जा सकता है?

Solutions Collecting From Web of "ओरेकल में किसी तालिका से कॉलम नाम कैसे प्राप्त हो सकते हैं?"

आप तालिका स्तंभ मेटाडेटा के लिए USER_TAB_COLUMNS तालिका की क्वेरी कर सकते हैं।

 SELECT table_name, column_name, data_type, data_length FROM USER_TAB_COLUMNS WHERE table_name = 'MYTABLE' 

SQL सर्वर में …

 SELECT [name] AS [Column Name] FROM syscolumns WHERE id = (SELECT id FROM sysobjects WHERE type = 'V' AND [Name] = 'Your table name') 

प्रकारों के लिए प्रकार = 'वी' प्रकार तालिकाओं के लिए प्रकार = 'यू'

तुम यह केर सकते हो:

 describe EVENT_LOG 

या

 desc EVENT_LOG 

नोट: केवल तभी लागू होता है जब आप तालिका नाम और विशेष रूप से ओरेकल के लिए जानते हैं।

SQL सर्वर 2008 के लिए, हम कॉलम जानकारी प्राप्त करने के लिए information_schema.column का उपयोग कर सकते हैं

 SELECT * FROM information_schema.columns WHERE table_name = 'Table_Name' ORDER BY ordinal_position 

SQLite के लिए मेरा मानना ​​है कि आप निम्न की तरह कुछ उपयोग कर सकते हैं:

 PRAGMA table_info(table-name); 

Sqlite.org से स्पष्टीकरण:

यह कार्यक्रम नामांकित तालिका में प्रत्येक स्तंभ के लिए एक पंक्ति देता है। परिणाम सेट के कॉलम में कॉलम का नाम, डेटा प्रकार शामिल है, चाहे कॉलम शून्य हो, और कॉलम के लिए डिफ़ॉल्ट मान हो। परिणाम सेट में "पीके" कॉलम कॉलम के लिए शून्य है जो कि प्राथमिक कुंजी का हिस्सा नहीं है, और प्राथमिक कुंजी के भाग वाले कॉलमों के लिए प्राथमिक कुंजी में स्तंभ का सूचकांक है।

यह भी देखें: Sqlite.org Pragma टेबल जानकारी

यह जानकारी ALL_TAB_COLUMNS सिस्टम तालिका में संग्रहीत है:

 SQL> select column_name from all_tab_columns where table_name = 'DUAL'; DUMMY 

या यदि आप SQL * PLUS का उपयोग कर रहे हैं तो आप तालिका का DESCRIBE कर सकते हैं:

 SQL> desc dual Name Null? Type ----------------------------------------------------- -------- ---------------------- ------------- DUMMY VARCHAR2(1) 

अन्य जवाबों में पर्याप्त रूप से सवाल का उत्तर दिया गया, लेकिन मैंने सोचा कि मैं कुछ अतिरिक्त जानकारी साझा करेगा। दूसरों तालिका जानकारी प्राप्त करने के लिए "डेस्ककैब तालिका" वाक्यविन्यास का वर्णन करते हैं। यदि आप एक ही प्रारूप में जानकारी प्राप्त करना चाहते हैं, लेकिन DESCRIBE का उपयोग किए बिना, आप ऐसा कर सकते हैं:

 SELECT column_name as COLUMN_NAME, nullable || ' ' as BE_NULL, SUBSTR(data_type || '(' || data_length || ')', 0, 10) as TYPE FROM all_tab_columns WHERE table_name = 'TABLENAME'; 

संभवत: इससे कोई फर्क नहीं पड़ता, लेकिन मैंने इसे पहले लिखा था और यह फिट होने लगता है।

 select column_name,* from information_schema.columns where table_name = 'YourTableName' order by ordinal_position 

MySQL के लिए, उपयोग करें

 SELECT column_name FROM information_schema.columns WHERE table_schema = 'Schema' AND table_name = 'Table_Name' 

SQL सर्वर के लिए:

 SELECT [name] AS [Column Name] FROM syscolumns WHERE id = object_id('TABLE_NAME') 

ओरेकल के लिए

 SELECT column_name FROM user_tab_cols WHERE table_name=UPPER('tableName'); 
 describe YOUR_TABLE; 

आपके मामले में :

 describe EVENT_LOG; 

यहां तक ​​कि यह भी एक तरह से हम इसका इस्तेमाल कर सकते हैं

 select * from product where 1 != 1 
 SELECT COLUMN_NAME 'all_columns' FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='user'; 

आप यह भी कोशिश कर सकते हैं, लेकिन यह आपके ज़रूरत से अधिक जानकारी हो सकती है:

 sp_columns TABLE_NAME 

माई एसक्यूएल

 SHOW COLUMNS FROM a_table_named_users WHERE Field REGEXP 'user_id|user_name|user_pass' 

इससे परिणाम कुछ ऐसा वापस आ जाएगा:

 Field | Type | Null | Key | Default | Extra user_id int(8) NO PRI NULL auto_increment user_name varchar(64) NO MUL NULL user_pass varchar(64) NO NULL 

फिर उन मूल्यों को निकालने के लिए जिन्हें आप आसानी से कर सकते हैं

 fetch row[0] 

इनपुट को गतिशील रूप से गुजारने के लिए यह बहुत अच्छा है क्योंकि REGEXP को '|' कई आदानों के लिए, लेकिन यह भी एक तरीका है कि डेटा को अलग और आसानी से स्टोर / कक्षाओं / कार्यों को पास रखने के लिए।

डमी डेटा में भी सुरक्षा के लिए फेंकने का प्रयास करें, इसे भेजते समय और किसी भी त्रुटि प्राप्त करते समय लौटाए गए तुलना की तुलना करें।

इसका जवाब यहां दिया गया है: http://php.net/manual/en/function.mysql-list-fields.php मैं आपके मामले में निम्न कोड का प्रयोग करूँगा:

 $result = mysql_query("SHOW COLUMNS FROM sometable"); if (!$result) { echo 'Could not run query: ' . mysql_error(); exit; } $fields = array(); if (mysql_num_rows($result) > 0) { while ($row = mysql_fetch_assoc($result)) { $fields[] = $row['Field']; } } 
 SELECT A.COLUMN_NAME, A.* FROM all_tab_columns a WHERE table_name = 'Your Table Name' AND A.COLUMN_NAME = 'COLUMN NAME' AND a.owner = 'Schema' 

आप इस क्वेरी को चला सकते हैं

 SELECT t.name AS table_name, SCHEMA_NAME(schema_id) AS schema_name, c.name AS column_name FROM sys.tables AS t INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID WHERE c.name LIKE '%%' --if you want to find specific column write here ORDER BY schema_name, table_name; 

ओरेकल में, दो दृश्य हैं जो कॉलम का वर्णन करते हैं:

  • DBA_TAB_COLUMNS डेटाबेस में सभी तालिकाओं, दृश्यों, और समूहों के स्तंभों का वर्णन करता है।

  • USER_TAB_COLUMNS तालिका, दृश्यों, और के स्तंभों का वर्णन करता है
    वर्तमान उपयोगकर्ता के स्वामित्व वाला समूह यह दृश्य इस प्रदर्शित नहीं करता है
    स्वामी कॉलम

बस तालिका से पहली पंक्ति चुनें, ऑरेकल के लिए: select * from <table name> where rownum = 1;

टेरेडाटा पर कॉलम के नाम तक पहुंच की तलाश में इस प्रश्न पर आया, इसलिए मैं एसक्यूएल के अपने 'स्वाद' का जवाब जोड़ूंगा:

 SELECT ColumnName FROM DBC.Columns WHERE DatabaseName='DBASE_NAME' AND TableName='TABLE_NAME'; 

जानकारी डीबीसी डीबीएस में संग्रहित है।

डेटा प्रकार प्राप्त करना थोड़ा अधिक शामिल है: टेराडाटा सिस्टम तालिकाओं का उपयोग करके कॉलम प्रकार प्राप्त करें

इसे इस्तेमाल करे

 select * from sys.all_columns c join sys.objects o on c.object_id=o.object_id where o.name = 'TABLENAME' and c.name like '%COLUMN NAME%' 

SQL 2008 में कॉलम विवरण चुनने के लिए क्वेरी

 DECLARE @tableName varchar(20)='item' SELECT UPPER(COLUMN_NAME)columnname ,DATA_TYPE+(CASE DATA_TYPE WHEN 'numeric' THEN '('+CAST(NUMERIC_PRECISION AS varchar)+','+CAST(NUMERIC_PRECISION_RADIX AS varchar)+')' WHEN 'varchar' THEN '('+CAST(CHARACTER_MAXIMUM_LENGTH AS varchar)+')' ELSE '' END) ,'DECLARE @'+COLUMN_NAME+' '+DATA_TYPE+(CASE DATA_TYPE WHEN 'numeric' THEN '('+CAST(NUMERIC_PRECISION AS varchar)+','+CAST(NUMERIC_PRECISION_RADIX AS varchar)+')' WHEN 'varchar' THEN '('+CAST(CHARACTER_MAXIMUM_LENGTH AS varchar)+')' ELSE '' END) Declaration ,'@'+ UPPER(COLUMN_NAME)+' '+DATA_TYPE+(CASE DATA_TYPE WHEN 'numeric' THEN '('+CAST(NUMERIC_PRECISION AS varchar)+','+CAST(NUMERIC_PRECISION_RADIX AS varchar)+')' WHEN 'varchar' THEN '('+CAST(CHARACTER_MAXIMUM_LENGTH AS varchar)+')' ELSE '' END)+',' XMLDeclare ,'@'+COLUMN_NAME+',' Assign ,COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH,NUMERIC_PRECISION,NUMERIC_PRECISION_RADIX 

मैंने इसे ऐसा किया था

 SELECT TOP 0 * FROM Posts 

यह http://data.stackexchange.com में भी काम करता है जिसका सेवा टेबल मुझे पता नहीं है!

 SELECT COLUMN_NAME FROM YourDatabase.INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'YourTableName'