How do I get a list of all tables in Oracle?

Richard C.

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;

Loved by over 4 million developers and more than 90,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.

Share on Twitter
Bookmark this page
Ask a questionJoin the discussion

Related Answers

A better experience for your users. An easier life for your developers.

    TwitterGitHubDribbbleLinkedinDiscord
© 2024 • Sentry is a registered Trademark
of Functional Software, Inc.