Oracle如何查询一个用户所创建的表 以及 如何查询一张表的主人

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle如何查询一个用户所创建的表 以及 如何查询一张表的主人相关的知识,希望对你有一定的参考价值。

有这样的情况 我已知用户名 我如何知道该用户都有什么表
我已知表名 如何知道表的创建者 以及 可否将表转移到另一用户名下

已知用户名 我如何知道该用户都有什么表有两种方式查看:
1、 dba身份:select table_name from dba_tables where owner='用户名';
2、用户本身身份:select * from user_tables;
已知表名 如何知道表的创建者
dba身份:select owner from dba_tables where table_name='表名';
可否将表转移到另一用户名下
回答:可以的,可以采用:
exp+imp expdp+impdp 或者CTAS 或者sqlplus的copy 或者传输表空间等等,方法太多了
参考技术A 那个,上面的说的两个问题都是对的,注意table_name=''要求大写
另外关于你说的“可否将表转移到另一用户名下”,使用一般的ddl sql是无法实现的,目前我所知道的就是使用datapump工具的remap_schema关键字将表重新导入到另一个用户下,其他的如create table owner.table_name as select ...也可以完成此操作本回答被提问者和网友采纳
参考技术B select * from user_tables 查询用户下的表

select owner from dba_tables where table_name='表名' 查询创建用户
至于把表转移到某个用户下,只要有dba权限的就可以授权给某个用户,网上你找一下如何授权,资料很多的

Oracle中如何查询所有表及其所使用的表空间

参考技术A

Oracle中查询所有表及其所使用的表空间可以使用SQL语句:

select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name;

在数据库管理员的日常工作中,应该经常查询表空间的利用率,按照数据库系统的具体情况估算表空间的增长量,当表空间的利用率超过90%时,要及时采取措施。

扩展资料

oracle一些其他表空间查询方法介绍:

1、查询oracle系统用户的默认表空间和临时表空间

select default_tablespace,temporary_tablespace from dba_users;

2、查询单张表的使用情况

select segment_name,bytes from dba_segments where segment_name = 'tablename' and owner = USER;

3、查询所有用户表使用大小的前三十名

select * from (select segment_name,bytes from dba_segments where owner = USER order by bytes desc ) where rownum <= 30;

4、查看表空间物理文件的名称及大小

SELECT tablespace_name, file_id, file_name, round(bytes / (1024 * 1024), 0) total_space 
FROM dba_data_files ORDER BY tablespace_name;

以上是关于Oracle如何查询一个用户所创建的表 以及 如何查询一张表的主人的主要内容,如果未能解决你的问题,请参考以下文章

如何在oracle中为特定用户查询没有所有者名称的表名

在oracle中如何删除一个用户下所有该用户所建的表?

oracle如何查找用户默认的表空间

oracle中查询某个库中所有的表以及所占的表空间大小

oracle如何授权当前用户只能增删改查当前用户的表

Oracle数据库中,知道一个值,如何查询它所在的表,是哪个字段?