java 获取oracle表结构_获取Oracle中所有表的列表?
回答(19)
2 years ago
我們可以從以下查詢獲取所有表格,包括列詳細信息:
SELECT * FROM user_tab_columns;
2 years ago
使用sqlplus更好地查看
如果您正在使用 sqlplus ,您可能需要首先設置一些參數以便在您的列被破壞時更好地查看(退出 sqlplus 會話后這些變量不應該保留):
set colsep '|'
set linesize 167
set pagesize 30
set pagesize 1000
顯示所有表格
然后,您可以使用這樣的內容來查看所有表名:
SELECT table_name, owner, tablespace_name FROM all_tables;
顯示您自己的表格
正如@Justin Cave所提到的,您可以使用它來顯示您擁有的表格:
SELECT table_name FROM user_tables;
不要忘記視圖
請記住,某些“表”實際上可能是“視圖”,因此您也可以嘗試運行以下內容:
SELECT view_name FROM all_views;
結果
這應該產生看起來相當可接受的東西,如:
2 years ago
嘗試以下數據字典視圖 .
tabs
dba_tables
all_tables
user_tables
2 years ago
為此存在3個數據
DBA_TABLES describes all relational tables in the database.
SELECT owner, table_name
FROM dba_tables
Description of relational tables accessible to the user
SELECT owner, table_name
FROM all_tables
USER_TABLES 描述了當前用戶擁有的關系表 . 此視圖不顯示 OWNER 列 .
SELECT table_name
FROM user_tables
2 years ago
下面是一個注釋的SQL查詢片段,描述了您可以使用的選項:
-- need to have select catalog role
SELECT * FROM dba_tables;
-- to see tables of your schema
SELECT * FROM user_tables;
-- tables inside your schema and tables of other schema which you possess select grants on
SELECT * FROM all_tables;
2 years ago
您可以使用Oracle Data Dictionary獲取有關oracle對象的信息 .
您可以通過不同方式獲取表的列表:
select *
from dba_tables
或者例如:
select *
from dba_objects
where object_type = 'TABLE'
然后,您可以使用表名獲取表列:
select *
from dba_tab_columns
然后,您可以獲得依賴項列表(觸發器,視圖等):
select *
from dba_dependencies
where referenced_type='TABLE' and referenced_name=:t_name
然后你可以得到這個對象的文本來源:
select * from dba_source
如果需要,您可以使用 USER 或 ALL 視圖而不是 DBA .
2 years ago
SELECT owner, table_name
FROM dba_tables
這假設您可以訪問 DBA_TABLES 數據字典視圖 . 如果您沒有這些權限但需要它們,則可以請求DBA明確授予您對該表的權限,或者DBA授予您 SELECT ANY DICTIONARY 權限或 SELECT_CATALOG_ROLE 角色(其中任何一個都允許您查詢任何數據)字典表) . 當然,您可能希望排除某些模式,例如 SYS 和 SYSTEM ,這些模式具有您可能不關心的大量Oracle表 .
或者,如果您無權訪問 DBA_TABLES ,則可以通過 ALL_TABLES 視圖查看您的帳戶有權訪問的所有表格:
SELECT owner, table_name
FROM all_tables
雖然,這可能是數據庫中可用表的子集( ALL_TABLES 顯示了您的用戶被授予訪問權限的所有表的信息) .
如果您只關心您擁有的表,而不是您有權訪問的表,則可以使用 USER_TABLES :
SELECT table_name
FROM user_tables
由于 USER_TABLES 僅包含您擁有的表的信息,因此它沒有 OWNER 列 - 根據定義,所有者就是您 .
Oracle還有許多遺留數據字典視圖 - 例如 TAB , DICT , TABS 和 CAT --可以使用 . 一般情況下,我不建議使用這些遺留視圖,除非您絕對需要將腳本反向移植到Oracle 6. Oracle長時間沒有更改這些視圖,因此它們經常遇到新類型對象的問題 . 例如, TAB 和 CAT 視圖都顯示有關用戶回收站中的表的信息,而 [DBA|ALL|USER]_TABLES 視圖都會過濾掉這些表 . CAT 還顯示有關具有 TABLE_TYPE "TABLE"的物化視圖日志的信息,這不太可能是您真正想要的 . DICT 結合了表和同義詞,并沒有告訴你誰擁有該對象 .
2 years ago
select object_name from user_objects where object_type='TABLE';
要么 - - - - - - - - -
select * from tab;
要么 - - - - - - - - -
select table_name from user_tables;
2 years ago
我希望獲得屬于按列id順序排序的模式表的所有列名稱的列表 .
這是我正在使用的查詢: -
SELECT COLUMN_NAME
FROM ALL_TAB_COLUMNS
WHERE OWNER = 'schema_owner_username' AND TABLE_NAME='table_name'
ORDER BY COLUMN_ID ASC;
2 years ago
有了這些,你可以選擇:
SELECT DISTINCT OWNER, OBJECT_NAME
FROM DBA_OBJECTS
WHERE OBJECT_TYPE = 'TABLE' AND OWNER='SOME_SCHEMA_NAME';
SELECT DISTINCT OWNER, OBJECT_NAME
FROM ALL_OBJECTS
WHERE OBJECT_TYPE = 'TABLE' AND OWNER='SOME_SCHEMA_NAME';
2 years ago
查詢 user_tables 和 dba_tables 無法正常工作 .
這個做了:
select table_name from all_tables
2 years ago
更進一步,還有另一個名為cols(all_tab_columns)的視圖,可用于確定哪些表包含給定的列名 .
例如:
SELECT table_name, column_name
FROM cols
WHERE table_name LIKE 'EST%'
AND column_name LIKE '%CALLREF%';
查找名稱以EST開頭的所有表和名稱中包含CALLREF的列 .
在計算要加入的列時,這可能會有所幫助,例如,取決于您的表和列命名約定 .
2 years ago
我沒有找到可以指出使用的答案
DBA_ALL_TABLES (ALL_ALL_TABLES/USER_ALL_TABLES)
2 years ago
包括觀點:
SELECT owner, table_name as table_view
FROM dba_tables
UNION ALL
SELECT owner, view_name as table_view
FROM DBA_VIEWS
2 years ago
嘗試從user_tables中選擇,其中列出了當前用戶擁有的表 .
2 years ago
select * from dba_tables
僅當您登錄的用戶具有 sysdba 權限時,才會提供所有用戶的所有表 .
2 years ago
以下查詢僅列出所需數據,而其他答案給了我額外的數據,這只會讓我困惑 .
select table_name from user_tables;
2 years ago
簡單查詢為當前用戶選擇表:
SELECT table_name FROM user_tables;
2 years ago
Oracle數據庫使用以下查詢顯示所有表的名稱
SELECT owner, table_name FROM dba_tables;
SELECT owner, table_name FROM all_tables;
SELECT table_name FROM user_tables;
總結
以上是生活随笔為你收集整理的java 获取oracle表结构_获取Oracle中所有表的列表?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java addcallback函数_j
- 下一篇: 惠普10代的服务器有哪些型号,英特尔官方