sql >> Databáze >  >> RDS >> Oracle

Jak mohu popsat tabulku v Oracle bez použití příkazu DESCRIBE?

Hledáte USER_TAB_COLUMNS - všechny sloupce a jejich popisy ve schématu, ve kterém je dotaz proveden - nebo ALL_TAB_COLUMNS - stejné kromě všech tabulek, které má uživatel oprávnění prohlížet.

Typický dotaz může být:

select *
  from user_tab_columns
 where table_name = 'MY_TABLE'
 order by column_id

column_id je "pořadí" sloupce v tabulce.

Měli byste se ujistit, že 'MY_TABLE' je velká, pokud nepřidáváte tabulky s velkými a malými písmeny (špatný nápad), v takovém případě musíte použít něco jako = "MyTable" .

Konkrétně desc je ekvivalentní následujícímu, který jsem ukradl z ss64, dobrého zdroje Oracle:

select column_name as "Name"
     , nullable as "Null?"
     , concat(concat(concat(data_type,'('),data_length),')') as "Type"
  from user_tab_columns
 where table_name = 'MY_TABLE';

Všechny tyto druhy zobrazení můžete najít select * from dictionary , což je nejvyšší úroveň datového slovníku nebo nahlédnutím do dokumentace.

K dispozici je také DBA_TAB_COLUMNS , což je stejné jako ALL_TAB_COLUMNS , ale pro každou tabulku v databázi. To předpokládá, že máte oprávnění prohlížet jej i tabulky. Nemáte-li přístup k této tabulce, musíte požádat svého DBA, aby vám udělil SELECT ANY DICTIONARY privilegium.



  1. Nainstalujte Apache, MySQL 8 nebo MariaDB 10 a PHP 7 na CentOS 7

  2. 3 způsoby, jak získat seznam databází v SQL Server (T-SQL)

  3. Najděte celkový počet výsledků v dotazu mySQL s offsetem+limitem

  4. Úvod do zálohování databáze Oracle