zoukankan      html  css  js  c++  java
  • 【转】Oracle的导入导出

    下面这些在使用过程中经常使用到的.(以后加上调优的参数说明,SGA区,共享池,PGA,等等spfile里面的参数)

    1.Export工具是一个导出程序
    语法:
    exp UserId/Password@数据库全局名 file=DMP文件的目录 其它参数
    获取帮助,敲入:exp help=y

    Export常用的参数(1)
    Direst 选择是否采用直接路径导出
    File指定导出文件名
    Full Full=Y将整个数据库导出
    Incremental导出上次Incremental 、Cumulative、Complete导出而改变的所有对象
    Cumulative 导出上次Cumulative、Complete导出后改变的所有对象
    Complete 导出所有的对象
    Indexes 指定索引是否被导出

    Export常用的参数(2)
    Log 指定日志的文件名
    Owner 允许为指定的用户导出对象
    Parfile 允许从一个文件读取导出参数
    Query 指定从表中导出符合条件的行
    Record 指定是否在导出系统表中记录Incremental或Cumulative导出,默认为Y
    Rows 控制表数据是否被导出
    Tables 允许导入一个或多个表
    Triggers 指定触发器是否和表一起导出

    2.Import工具是一个导入程序
    语法:
    imp UserId/Password@数据库全局名 file=DMP文件的目录 其它参数
    获取帮助,敲入:imp help=y

    Import常用的参数(1)
    File 指定导入文件名
    Fromuser 允许导入指定的用户拥有的表
    Full full=Y时,导入DMP文件中所有的事物
    Ignore 为Y时,如果数据出错,将继续下一行数据
    Indexes 是否导入索引
    Log 指定日志文件
    Parfile 指定从文件中读导出参数
    Rows 指定是否导入表的数据

    Import常用的参数(2)
    Show 指定显示全部要被执行的参数
    Tables 指定导入一个或多个表
    Touser 指定导入到哪个用户名下
    Userid 指定导入的用户的用户名和密码

    3.SQL*Loader简介
    SQL*Loader从文本文件导数据到数据库中。功能包括:
    从定界文件装数据
    从固定长度的文本文件装数据
    从二进制文件装数据
    在输入文件中过滤数据

    SQL*Loader使用的数据类型
    Char:该char和数据库中的char类型不同,它包括数据库中的char、varchar、CLOB等类型
    Date:时间类型
    Interger external:定义整数值
    Decimal external:定义包括小数点的数值

    装载字段固定长度的文件
    一个例子:
    Load data
       infile ‘yyb_data.txt’
       append
    Into table emp
    (   name position(1:10) char,
        rank  position(11:13) interger external,
        birthday position(13:23) date “dd-mm-yyyy”
    )

    导入有界定符的文件
    一个例子:
    Load data
       Infile ‘c:\yyb.txt’
       append
    Into table emp
    (  name char terminated by ‘,’,
       rank interger external terminated by ‘,’,
       birthday date “dd-mm-yyyy” terminated by ‘,’
    )

    导入有界定符的文件 (续)
    再看一个例子(处理空字段):
    Load data
       Infile ‘c:\yyb.txt’
       append
    Into table emp
       trailing nullcols
    (  name char terminated by ‘,’,
       rank interger external terminated by ‘,’,
       birthday date “dd-mm-yyyy” terminated by ‘,’ )

    如何把数据放到表中
    从前面的例子中可以看出,它们都包含关键字append,还有其它的关键字:
    Insert:指定要装载的是空表,否则失败
    Append:添加数据到表,即使表中有数据
    Replace:加载前,将删除表中的所有数据
    Truncate:与replace同

    使用SQL*Loader命令和参数
    命令语法为:
      sqlldr [param=value [,param= valus … ] ]
    参数:
    Userid 用户名和密码
    Control 指定控制文件名,也就是存放前面的胶片中的代码的文件
    Log 指定日志文件名
    Bad 指定存放坏记录的文件名

    SQL*Loader参数(续前)
    Data 指定数据文件名
    Skip 允许跳过的记录数量
    Load 允许装入的记录数量
    Errors 指定允许的错误数
    Rows 指定装载多少条记录提交一次
    Direct 可以指定为直接路径装载
    Parfile 指定包含命令参数的文件名

    举个例子来说明:
    (1)先创建一张表:
    create table test_load(
    stu_num number(10,0),
    stu_name varchar2(50),
    stu_date date
    )
    (2)准备数据文件(可以采用spool导出,再下来会讲到): dateFile.txt
    "1234","niegc","2006-01-01"
    "1235","ngc","2006-01-02"
    (3)写控制文件(必须注意每一个字段的位置,和时间字段的格式):loader.ctl
    Load data
    infile 'F:\test\dateFile.txt'
    Append into table test_load
    fields Terminated by "," Optionally enclosed by'"'
    (
    stu_num,
    stu_name,
    stu_date date "YYYY-MM-DD"
    )
    (4)执行sqlldr
    C:\Documents and Settings\Administrator>sqlldr niegc/niegc control=f:\test\loader.ctl log=f:\test\aaaaaa.log
    SQL*Loader: Release 9.2.0.1.0 - Production on 星期三 4月 26 22:06:35 2006
    Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
    达到提交点,逻辑记录计数2
    成功了,是不是很简单,append 还是insert  上面有说明的哦.

    4.Spool简介
    spool 是数据的导出命令,最简单的执行如下:
    用sqlplus 登陆:
    SQL>spool f:\test\bbb.txt
    SQL> select * from test_load;
       STU_NUM STU_NAME                                           STU_DATE
    ---------- -------------------------------------------------- ----------
          1234 niegc                                              01-1月 -06
          1235 ngc                                                02-1月 -06
    SQL> spool off
    这样就可以导出了

    如果你想导出自己定义的格式,你可以先set 参数然后再spool
    例如:
    SET COLSEP ' '
    SET ECHO OFF
    SET FEEDBACK OFF
    SET HEADING OFF
    SET PAGESIZE 0
    SET LINESIZE 1000
    SET NUMWIDTH 12
    SET TERMOUT OFF
    SET TRIMOUT ON
    SET TRIMSPOOL ON

  • 相关阅读:
    可怕的沉默
    我排着队 拿着号码牌
    移动改名正在运行的程序
    C# 注册热键
    c#通过编码检查是否有PendingChanges没有签入
    c#读取带命名空间的xml
    自动查找并关闭窗口
    C# 应用微软的Visual Studio International Pack 类库提取汉字拼音首字母
    C#执行DOS命令(CMD命令) (转)
    asp.net 文件下载,有进度条
  • 原文地址:https://www.cnblogs.com/temptation/p/954408.html
Copyright © 2011-2022 走看看