在表的所有者不能改变的情况下,可以使用导入导出表结构和表数据的方法,将表移动到你想要的所有者下(注:特别是建立表的时候如果以sysdba的身份登录的话,所有表的所有者都为sys,此时会对你用c#访问数据库产生麻烦,我在我的另一篇文章中也提到《.NET连接Oracle数据库的错误,pl/sql中的myobjects过滤器 》),此时你只能用这种方法改变所有者。
以normal身份建立的表,才能在myobjects中被过滤出来,而以sysdba身份建立的表,用myobjects过滤器,没有用。
导出表结构: Tools(工具)-->Export User Objects(导出用户对象) -->选择要导出的表(包括Sequence等)-->.sql文件,导出的都为sql文件
导出表数据: Tools(工具)-->Export Tables(导出表)-->选择表,选择SQL Inserts(SQL 插入)-->.sql文件
![](https://i-blog.csdnimg.cn/blog_migrate/a6e0516cc44bcd403512fb554a698a9a.png)
导入表结构: 执行刚刚导出的sql文件,记住要删掉table前的用户名,比如以前这表名为sys.tablename,必须删除sys
导入表数据: 执行刚刚导出的sql文件