oracle exp 命令的一些用法

获取exp 帮助
exp help=y


EXP username/password:

Example: EXP SCOTT/TIGER

EXP KEYWORD=value or KEYWORD=(value1,value2,...,valueN)

Example: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
or TABLES=(T1:P1,T1:P2), if T1 is partitioned table

USERID must be the first parameter on the command line.

Keyword Description (Default)
---------------------------------------------
USERID username/password
FULL export entire file (N)
BUFFER size of data buffer
OWNER list of owner usernames
FILE output files (EXPDAT.DMP)
TABLES list of table names
COMPRESS import into one extent (Y)
RECORDLENGTH length of IO record
GRANTS export grants (Y)
INCTYPE incremental export type
INDEXES export indexes (Y)
RECORD track incr. export (Y)
DIRECT direct path (N)
TRIGGERS export triggers (Y)
LOG log file of screen output
STATISTICS analyze objects (ESTIMATE)
ROWS export data rows (Y)
PARFILE parameter filename
CONSISTENT cross-table consistency(N)
CONSTRAINTS export constraints (Y)
OBJECT_CONSISTENT transaction set to read only during object export (N)
FEEDBACK display progress every x rows (0)
FILESIZE maximum size of each dump file
FLASHBACK_SCN SCN used to set session snapshot back to
FLASHBACK_TIME time used to get the SCN closest to the specified time
QUERY select clause used to export a subset of a table
RESUMABLE suspend when a space related error is encountered(N)
RESUMABLE_NAME text string used to identify resumable statement
RESUMABLE_TIMEOUT wait time for RESUMABLE
TTS_FULL_CHECK perform. full or partial dependency check for TTS
VOLSIZE number of bytes to write to each tape volume
TABLESPACES list of tablespaces to export
TRANSPORT_TABLESPACE export transportable tablespace metadata (N)
TEMPLATE template name which invokes iAS mode export

Example:

  1. 将数据库中system用户与sys用户的表导出
expsystem/manager@TESTfile=d:\daochu.dmp wner=(system,sys)


  2 导出一个完整数据库
    exp system/manager file=bible_db log=dible_db full=y
  
  3. 导出数据库定义而不导出数据
    exp system/manager file=bible_db log=dible_db full=y rows=n
  
  4. 导出一个或一组指定用户所属的全部表、索引和其他对象
    exp system/manager file=seapark log=seapark wner=seapark
    exp system/manager file=seapark log=seapark wner=(seapark,amy,amyc,harold)
  注意:在导出用户时,尽管已经得到了这个用户的所有对象,但是还是不能得到这些对象引用的任何同义词。解决方法是用以下的SQL*Plus命令创建一个脚本文件,运行这个脚本文件可以获得一个重建seapark所属对象的全部公共同义词的可执行脚本,然后在目标数据库上运行该脚本就可重建同义词了。
  
    SET LINESIZE 132
    SET PAGESIZE 0
    SET TRIMSPOOL ON
    SPOOL c:\seapark.syn
    SELECT 'Create public synonym '||synonym_name
    ||' for '||table_owner||'.'||table_name||';'
    FROM dba_synonyms
    WHERE table_owner = 'SEAPARK' AND wner = 'PUBLIC';
    SPOOL OFF
  
  5. 导出一个或多个指定表
    exp seapark/seapark file=tank log=tank tables=tank
    exp system/manager file=tank log=tank tables=seapark.tank
    exp system/manager file=tank log=tank tables=(seapark.tank,amy.artist)
  
  6. 估计导出文件的大小
  全部表总字节数:
  SELECT sum(bytes)
  FROM dba_segments
  WHERE segment_type = 'TABLE';
  
  seapark用户所属表的总字节数:
  SELECT sum(bytes)
  FROM dba_segments
  WHERE wner = 'SEAPARK'
  AND segment_type = 'TABLE';
  
  seapark用户下的aquatic_animal表的字节数:
  SELECT sum(bytes)
  FROM dba_segments
  WHERE wner = 'SEAPARK'
  AND segment_type = 'TABLE'
  AND segment_name = 'AQUATIC_ANIMAL';
  
  7. 导出表数据的子集(oracle8i以上)
  NT系统:
  
  exp system/manager query='Where salad_type='FRUIT'' tables=amy.salad_type
    file=fruit log=fruit
  UNIX系统:
  
  exp system/manager query=\"Where salad_type=\'FRUIT\'\" tables=amy.salad_type
    file=fruit log=fruit
  
  8. 用多个文件分割一个导出文件
    exp system/manager
    file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)
    log=paycheck, filesize=1G tables=hr.paycheck
  
  9. 使用参数文件
    exp system/manager parfile=bible_tables.par
  bible_tables.par参数文件:
  
    #Export the sample tables used for the Oracle8i Database Administrator's Bible.
    file=bible_tables
    log=bible_tables
    tables=(
    amy.artist
    amy.books
    seapark.checkup
    seapark.items
    )
  
  10. 增量导出
  “完全”增量导出(complete),即备份整个数据库
  exp system/manager inctype=complete file=990702.dmp
  “增量型”增量导出(incremental),即备份上一次备份后改变的数据
  exp system/manager inctype=incremental file=990702.dmp
  “累计型”增量导出(cumulative),即备份上一次“完全”导出之后改变的数据
  exp system/manager inctype=cumulative file=990702.dmp
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用 `exp` 命令导出 Oracle 数据库时,如果存在 CLOB 类型的字段,可能会出现报错的情况。这是因为 `exp` 命令默认使用 `varchar2` 类型来处理 CLOB 字段,而 `varchar2` 类型的长度有限制,无法处理过长的 CLOB 字段。 解决这个问题有两种方法: 1. 使用 `expdp` 命令导出数据:`expdp` 命令Oracle 数据库的数据泵工具,它可以更好地处理 CLOB 类型的数据。使用 `expdp` 命令导出数据时,需要指定 `CLOB` 类型的列使用二进制格式导出,例如: ``` expdp user/password@database tables=table_name directory=dir dumpfile=file_name.dmp lob_as_segment=y ``` 其中,`lob_as_segment=y` 表示将 `CLOB` 类型的列以二进制格式导出。 2. 修改 `exp` 命令的参数:可以通过修改 `exp` 命令的参数来解决 CLOB 字段报错的问题。具体操作如下: 1. 在 `exp` 命令中添加 `-c` 参数,表示以字符格式导出数据。 2. 在 `exp` 命令中添加 `-lob` 参数,表示导出 CLOB 字段。 3. 修改 `NLS_LANG` 环境变量,将其设为 `AMERICAN_AMERICA.AL32UTF8`,表示使用 UTF-8 编码。 示例命令如下: ``` exp user/password@database tables=table_name file=file_name.dmp log=log_name.log rows=yes compress=no direct=no indexes=no triggers=no constraints=no grants=no feedback=1000000 buffer=1000000 consistent=y commit=y statistics=none object_consistent=y recordlength=65535 consistent=y full=y rows=y constraints=n indexes=n grants=n triggers=n feedback=1000000 buffer=1000000 file=file_name.dmp log=log_name.log compress=n consistent=y direct=n rows=y statistics=none file_size=unlimited consistent=y file_name_convert=old_dir:new_dir -c -lob -NLS_LANG=AMERICAN_AMERICA.AL32UTF8 ``` 注意,修改 `NLS_LANG` 环境变量可能会影响其他程序的运行,需要谨慎操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值