我很难获得给定用户名或当前会话/用户的表;我可以使用select table_name from all_tables;
获取所有表,但它也可以检索默认创建的表。我只想要我们创建的表格。
即使当我从Pluggable数据库中检索表时,它也会获取所有表(带有-$-符号名称的默认表),但当我在ORACLE SQL DEVELOPER中连接可插入用户时,它只显示(用户创建的)没有默认表的表。
我想要所有显示表的查询,没有默认($sign-name)表的用户,用户;对于sqlplus。我正在使用ORACLE-12C。
只过滤所有者:
select table_name from all_tables where owner='YOUR OWNER NAME';
您可以根据您的权限查询视图[DBA|ALL|USER]_TABLES。
查询USER_TABLES将提供您登录的当前所有者拥有的所有表。
例如,
SQL> show user
USER is "LALIT"
SQL> SELECT table_name FROM user_tables;
TABLE_NAME
--------------------------------------------------------------------------------
no rows selected
SQL> create table t(a number);
Table created.
SQL> SELECT table_name FROM user_tables;
TABLE_NAME
--------------------------------------------------------------------------------
T
使用DBA/ALL时,必须在UPPER CASE中筛选OWNER。
例如,
SQL> show user
USER is "SYS"
SQL> SELECT table_name FROM dba_tables WHERE OWNER='LALIT';
TABLE_NAME
--------------------------------------------------------------------------------
T