How can I get column names from a table in Oracle?
I need to query the database to get the column names, not to be confused with data in the table. For example, if I have a table named EVENT_LOG
that contains eventID
, eventType
, eventDesc
, and eventTime
, then I would want to retrieve those field names from the query and nothing else.
I found how to do this in:
- Microsoft SQL Server
- MySQL
- PostgreSQL
But I need to know: how can this be done in Oracle?
You can query the USER_TAB_COLUMNS table for table column metadata.
SELECT table_name, column_name, data_type, data_length
FROM USER_TAB_COLUMNS
WHERE table_name = 'MYTABLE'
In SQL Server...
SELECT [name] AS [Column Name]
FROM syscolumns
WHERE id = (SELECT id FROM sysobjects WHERE type = 'V' AND [Name] = 'Your table name')
Type = 'V' for views Type = 'U' for tables
You can do this:
describe EVENT_LOG
or
desc EVENT_LOG
Note: only applicable if you know the table name and specifically for Oracle.
For SQL Server 2008, we can use information_schema.columns for getting column information
SELECT *
FROM information_schema.columns
WHERE table_name = 'Table_Name'
ORDER BY ordinal_position