我需要一个查询(ORACLE)来获取给定值的数据库中的所有表名和列名吗?
示例:如果我将值设为“TEST”,我需要一个查询,它会拉出所有TABLE_NAMES和COLUMN_NAMES,其值为“TEST”。
答案 0 :(得分:1)
select table_name, null column_name from all_tables where table_name like '%TEST%'
union all
select null, column_name from all_tab_columns where column_name like '%TEST%';
答案 1 :(得分:1)
另一种方法是在诸如
的过程中使用绑定变量DEFINE vSearch ='%TEST%'
ACCEPT vSearch char PROMPT'输入搜索值:'
SELECT * 来自USER_TAB_COLS WHERE column_name LIKE'&& vSearch' OR table_name LIKE'&& vSearch';
答案 2 :(得分:1)
查看特定表用户的所有列使用“ALL_TAB_COLUMNS”
如果您想描述特定的表用户,请使用“DESC Table_name;”
请试试这个..
答案 3 :(得分:0)
您可以使用USER_TAB_COLUMNS表
答案 4 :(得分:0)
这应该可以获得列和表以及视图:
SELECT 'Column: '||owner||'.'||table_name||'.'||column_name
FROM dba_tab_columns
WHERE column_name = 'TEST'
UNION ALL
SELECT 'Table: '||owner||'.'||table_name
FROM dba_tables
WHERE table_name = 'TEST'
UNION ALL
SELECT 'View: '||owner||'.'||view_name
FROM dba_views
WHERE view_name = 'TEST';
请注意,如果您无权访问DBA_视图,也可以使用ALL_ *字典视图,但只能看到有权访问的对象。