【问题标题】:How to get user tables from Oracle SQL?如何从 Oracle SQL 获取用户表?
【发布时间】:2019-10-17 18:49:17
【问题描述】:
我正在尝试获取特定用户的表名,然后查找该表中的列。
目前,我得到了所有的用户名
select * from all_users;
获得所有用户名后,我想提取这些用户最终找到特定用户在特定表中的列的表。
如何找到用户的所有表?
例如,如果对于用户“James”,我想要他的表“My_games”的所有列
我会用
DESCR James.My_games
但我不确定
如何获取多个用户表的列信息,以便将其导出到 excel 中。
【问题讨论】:
标签:
oracle
oracle-sqldeveloper
【解决方案1】:
查找用户包含的表:
SQL> select table_name from user_Tables;
TABLE_NAME
------------------------------
EMP
DEPT
BONUS
检查它们包含哪些列:
SQL> select column_name from user_tab_Columns where table_name = 'DEPT';
COLUMN_NAME
------------------------------
DEPTNO
DNAME
LOC
SQL>
从表中选择数据:
SQL> select * from dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL>
将内容保存到文件中(来自 SQL*Plus):spool;最简单(但不是最好)的方法是
SQL> spool dept.txt
SQL> select * from dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> spool off
要将数据导出到 Excel - 就像您使用 SQL Developer 一样:
- 在对象导航器中,右键单击您感兴趣的表
- 选择“导出”
- 勾选你想要的,取消勾选你不想要的
- 选择格式(已提供 Excel)
- 导出数据