列出Oracle中给定用户的所有表

m.r*_*226 4 sql oracle oracle11g

我是Oracle新手,想要查找用户'john'创建的所有表.

我通过命令行通过以下命令连接到Oracle数据库:

sqlplus  john/passwd
Run Code Online (Sandbox Code Playgroud)

如何列出给定用户创建的所有表格,例如john?

MT0*_*MT0 8

这将获得"JOHN"用户所有者的所有表格:

SELECT * FROM USER_TABLES;
Run Code Online (Sandbox Code Playgroud)

要么

SELECT * FROM ALL_TABLES WHERE OWNER = 'JOHN';
Run Code Online (Sandbox Code Playgroud)

([TL; DR] 'JOHN'通常需要大写.假设用户john是使用CREATE USER john ...语句创建的,那么Oracle的默认行为是将所有对象名称(即表,列,用户等)转换为大写.当你查询数据字典,表格详细信息将在这种情况下存储(而不是您在原始命令中使用的情况,除非您用双引号将其包装).)