How do I get a list of all tables in Oracle?
The Problem
How do you select the names of all tables in Oracle?
The Solution
Oracle groups tables into schemas. You can think of a schema as a “database” if you’re used to other database management systems, although in Oracle schemas are usually part of the main container database.
Schemas “own” tables. So to list all table names in a specific schema called CHINOOK, use the command:
SELECT table_name
FROM dba_tables
WHERE owner = 'CHINOOK'
ORDER BY table_name;
Oracle is case-sensitive, so be sure to enter your owner schema name with the correct capitalization.
If the query above gives you a permissions error, try replacing dba_tables with all_tables or user_tables. These three tables are shown in decreasing order of permissions required.
If you want to list all tables in all schemas, remove the where clause from the query.
Finally, if you want to include column names in your results, use:
SELECT table_name, column_name
FROM all_tab_columns
WHERE owner = 'CHINOOK'
ORDER BY table_name, column_id;
Considered "not bad" by 4 million developers and more than 150,000 organizations worldwide, Sentry provides code-level observability to many of the world's best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.