如何将oracle用户下的表,视图结构导出
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将oracle用户下的表,视图结构导出相关的知识,希望对你有一定的参考价值。
在oracle中,如何将用户下的表结构,视图结构导出?
首先要弄清楚的是,你导出的目的是什么?是为了在另外一个库上重建么,或者仅仅是要看一看。是要导出该用户下所有的吗?数据库的版本是什么?
给你一个简单的比较通用的办法,用exp导出
我在10.2.0.1下测试通过,应该可以用于9i以上版本。
$ exp test/oracle owner=test rows=n file=exp.dmp log=exp.log
这样是导出test用户下的所有对象,rows=n 即不导出数据,只导出表结构。
导出文件是exp.dmp 。这个是不可读的,你可以用如下命令获得表结构
$ imp test/oracle file=exp.dmp show=y log=imp.log
show=y 即不真正执行导入,只将导入要做的事情记录到imp.log当中。
执行结束。可以在imp.log中看到类似如下的信息
"CREATE TABLE "TEST" ("A" NUMBER, "B" NUMBER) PCTFREE 10 PCTUSED 40 INITRAN"
"S 1 MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1 BUFFER"
"_POOL DEFAULT) TABLESPACE "USERS" LOGGING NOCOMPRESS"
"CREATE TABLE "TN" ("NAME" VARCHAR2(1000)) PCTFREE 10 PCTUSED 40 INITRANS 1"
" MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1 BUFFER_PO"
"OL DEFAULT) TABLESPACE "USERS" LOGGING NOCOMPRESS"
I
这就是原来在test用户下的2张表的结构了 参考技术A 可以借助plsql工具实现tools---->Export User Objects 参考技术B 使用oracle自带的实用程序exp或expdp
oracle 怎样查询某用户下的所有表的表名
select * from all_tab_comments -- 查询所有用户的表,视图等。
select * from user_tab_comments -- 查询本用户的表,视图等。
select * from all_col_comments --查询所有用户的表的列名和注释。
select * from user_col_comments -- 查询本用户的表的列名和注释。
select * from all_tab_columns --查询所有用户的表的列名等信息。
select * from user_tab_columns --查询本用户的表的列名等信息。
扩展资料
ORACLE下有三个视图
DBA_TABLES 拥有DBA角色的用户可以查看系统中的所有表
USER_TABLES 登录数据库的当前用户拥有的所有表
ALL_TABLES 登录数据库的当前用户有权限查看的所有表
参考资料:百度百科-Oracle
如果是用该用户登录使用以下语句:
SELECT *
FROM USER_TABLES;
如果是用其他用户(在dba权限下):
SELECT *
FROM ALL_TABLES WHERE OWNER='USER_NAME'
扩展资料:
1、查询“c001”课程比“c002”课程成绩高的所有学生的学号;
select * from sc a
where a.cno='c001'
and exists(select * from sc b where b.cno='c002' and a.score>b.score
and a.sno = b.sno)
2、查询平均成绩大于60 分的同学的学号和平均成绩;
select sno,avg(score) from sc group by sno having avg(score)>60;
3、查询所有同学的学号、姓名、选课数、总成绩;
select a.*,s.sname from (select sno,sum(score),count(cno) from sc group by sno) a ,student s where a.sno=s.sno
4、查询姓“刘”的老师的个数;
select count(*) from teacher where tname like '刘%';
参考技术BORACLE下有三个视图
select table_name from user_tables; //当前用户拥有的表
select table_name from all_tables; //所有用户的表
select table_name from dba_tables; //包括系统表
select table_name from dba_tables where owner='用户名'
类似的,除了表,还有视图、存储过程、同义词等等对象,使用[DBA|USER|ALL]_TABLES可以查看到你想要的对象
扩展资料:
当创建视图后,ORACLE将会验证视图的有效性,如修改了基本表,则会导致视图的无效状态.可查询数据字典user_objects的status.
1、创建表T,包含ID和NAME两列;
2、使用该表创建一个视图t_view,查看该表所有信息;
3、使用该表创建一个视图t_view2,查看该表的ID和NAME列
4、查看该视图状态;
5、在表T上增加一列性别sex,重新查看视图t_view的状态.
6、在表T上删除列NAME,重新查看视图t_view2的状态.
注:VALID表示正常状态,invalid表示非正常状态
参考资料:Oracle视图-百度百科
参考技术CORACLE下有三个视图
DBA_TABLES 拥有DBA角色的用户可以查看系统中的所有表
USER_TABLES 登录数据库的当前用户拥有的所有表
ALL_TABLES 登录数据库的当前用户有权限查看的所有表
类似的,除了表,还有视图、存储过程、同义词等等对象,使用[DBA|USER|ALL]_TABLES可以查看到你想要的对象
本回答被提问者和网友采纳 参考技术D -- connect xx/xx 切换到这个用户select * from tab;
以上是关于如何将oracle用户下的表,视图结构导出的主要内容,如果未能解决你的问题,请参考以下文章