Oracle数据库用户表导出教程

5星 · 超过95%的资源 需积分: 41 28 下载量 148 浏览量 更新于2024-09-12 收藏 32KB DOC 举报
"Oracle数据库系统提供了多种方法来导出特定用户的所有表,这些方法包括按用户方式、按表方式、按表空间方式以及使用参数文件导出。在Oracle环境下,导出操作通常由`exp`命令执行,而导入则由`imp`命令完成。以下是对这些方法的详细说明: 1. 按用户方式导出数据 使用`owner`参数指定用户名,例如: ``` exp scott/tiger@handson file=scott_back owner=scott ``` 这将导出用户`scott`的所有对象。 2. 按表方式导出数据 使用`tables`参数列出要导出的表名,如: ``` exp scott/tiger@handsontables=(emp,dept) file=scott_back_tab ``` 这将仅导出`scott`用户的`emp`和`dept`两个表。 3. 按表空间方式导出数据 使用`tablespaces`参数指定表空间名,例如: ``` exp system/handson tablespaces=(users) file=tbs_users ``` 这将导出属于`users`表空间的所有对象。 4. 使用参数文件导出数据 创建一个包含导出参数的文本文件,然后使用`parfile`参数引用它,比如: ``` exp system/handson parfile='C:\parameters.txt' ``` 参数文件中可以定义多个导出设置,使得导出过程更加灵活。 5. 通过PL/SQL Developer导出 在PL/SQL Developer工具中,可以选择"工具" -> "导出用户对象",以图形化方式导出特定用户的所有对象。 6. 导入操作 - 导入单个表:使用`impsystem/manager@mycon file=c:\tab1.dmp tables=(dept,emp)`,并可指定目标用户`touser=scott`。 - 导入整个用户:`impsystem/manager@mycon file=usr1.dmp fromuser=scott touser=scott`。 - 全库导入:`impsystem/manager@mycon file=<full_database_dmp_file>`。 - 增量导入和累积导入:`full=y`参数可以用于全库导入,而`inctype`参数可以设为`incremental`或`cumulative`,分别进行增量或累积导入。 在执行这些操作时,请确保你有足够的权限,且根据实际情况调整文件路径和参数。导出的数据文件(`.dmp`)可以用于备份或在不同环境中迁移数据。务必谨慎操作,避免数据丢失。"
2007-06-07 上传
适用的数据库:8i, 9i数据库下该脚本通用

功能:导出一个用户的数据结构,包括表、视图、索引、约束、存储过程、触发器、函数、序列等等的定义,并且每个定义为一个文件
导出的各个对象的定义格式比较规范。
如表的定义为:
prompt Create Table BBNACTIVEHISTORY
CREATE TABLE test(
USERID VARCHAR2(20) NOT NULL,
SPUSERID VARCHAR2(30) NOT NULL,
PRODUCTID VARCHAR2(20) NOT NULL,
GAMETYPE NUMBER NOT NULL,
STARTTIME DATE NOT NULL,
CHARGED CHAR(1) default 'N' NOT NULL
);

每个存储过程有多个参数,可以控制输出何种形式的内容,如可以只生成删除表的sql,可以在生成的创建表与索引的语句上加上storage子句等等。

运行 user_dll_sql.sql的准备工作:

1. 修改win_mkdir.bat文件,以便生成存放生成脚本的基本目录及其子目录
win_mkdir.bat文件生成上面所需要的所有目录
打开win_mkdir.bat文件,修改BASE_DIC变量的值,如c:\temp\,该目录是存放生成的脚本文件的基本目录


2. 运行 win_mkdir.bat文件创建必要的目录

3. 用sql*plus以想导出数据结构的用户登陆到数据库
运行user_dll_sql.sql 生成文件的路径文件,生成所有的ddl语句
运行文件时,将存放生成脚本的基本目录作为参数(与步骤1改的基本目录一样)传入, ?要根据需要改为实际的目录
SQL> @?\user_ddl_sql.sql c:\temp\


说明:
运行win_mkdir.bat,文件后,会自动在生成脚本的基本目录下产生如下目录:
procedures, functions, triggers, packages, temp_sql.
每个目录的作用如下:
procedures: 该目录存放存储过程, 有子目录separ_files, 该目录下的每个文件都是一个存储过程的源代码
functions: 该目录存放函数, 有子目录separ_files, 该目录下的每个文件都是一个函数的源代码
triggers: 该目录存放触发器, 有子目录separ_files, 该目录下的每个文件都是一个触发器的源代码
packages: 该目录存放包, 有子目录separ_files, 该目录下的每个文件都是一个包的源代码
有子目录separ_headbobdy_file, 该目录下的每个文件都是一个包的包头或包体的源代码
temp_sql:存放生成的临时文件