• 欢迎访问交通人网站!
  • 分享一款小游戏:信任的进化
  •    发表于8年前 (2016-06-02)  热点资讯 |   1 条评论  2737 
    文章评分 3 次,平均分 5.0

    在众多数据库软件当中,小编常用的是 Access、SQL Server 和 MySQL。对于 Oracle,可谓是一窍不通。不过,最近手上有几个数据文件需要导入数据库,一看全是 Oracle 数据库的格式,而且通过了解发现,这些格式的数据文件也只有 Oracle 数据库才能便捷的导入。

    无奈之下,只好又被“掌握”了一款新的软件。其实说实话,Oracle 的使用并不困难,主要是被 Windows 惯坏了,用习惯了图形化的界面之后,就比较排斥 dos 操作。要说不同的话,Oracle 与SQL Sever、MySQL 的最大差别在于存储文件的结构:

    • 在 SQL Sever 数据库中,一个数据库对应一个.MDF 文件和一个.ldf 文件;
    • 在 MySQL 数据库中,一个数据库对应一个文件夹,其中每个表对应一个.frm 文件和一个.MYD 文件;
    • 而在 Oracle 数据库中,一个实例只有一个数据库,但是可以包含很多不同的用户和表。在 Oracle 中有一个表空间的概念,一个表空间对应着一个或多个物理的数据库文件(.DBF)。一个表空间里面可以有很多表,而一个表又可以对应多个表空间。

    言归正传,下面介绍一下 Oracle 中.pde/.dmp/.ctl 数据文件的导入。

    .pde 文件

    .pde 文件,是 PL/SQL Developer 专用的数据导出文件格式。因此要导入.pde 文件,需要首先安装 PL/SQL Developer。注意,目前只有32位的PL/SQL Developer,需要通过一些修改才能支持 64 位的 Oracle。

    Oracle:关于.pde/.dmp/.ctl数据文件的导入

    软件安装完毕之后,具体数据导入还是比较简单的。通过 Tools > Import Tables 可以打开下图所示的数据导入界面,然后就是根据实际情况,设置相应的参数即可。

    Oracle:关于.pde/.dmp/.ctl数据文件的导入

    .dmp文件

    .dmp 文件,是 Oracle 数据库的备份文件格式,一般会用 exp 命令来导出,用 imp 命令来导入。

    导出数据库备份文件:

    导入数据库备份文件:

    其中,full=y 就是把表、存储过程、函数等一起导出,导入时也一样,导入中的 ignore=y 是忽略重复表。

    除了使用命令之外,也可以使用 PL/SQL Developer 实现.dmp 文件的导入和导出。

    .ctl文件

    一种情况是自建.ctl 文件,导入已有的.txt 文件,具体步骤如下:

    第一步,准备文本格式的数据文件(注意:使用无签名的UTF-8),比如 C:\test.txt;

    第二步,建立控制文件,如 C:\input_test.ctl,其内容如下:

    其中append为数据装载方式,还有其他选项:

    • insert,为缺省方式,在数据装载开始时要求表为空;
    • append,在表中追加新记录;
    • replace,删除旧记录,替换成新装载的记录;
    • truncate,如果要载入的数据与现在的数据相同,载入的数据替换现存的数据。

    第三步,在命令提示符下输入命令:

    如果有.log、.bad 等其他文件,可以附加进去:

    另一种情况是.ctl 文件中已经包含了控制命令和需要导入的数据。

    这种情况下不要单独新建控制文件,可以直接执行 sqlldr 命令导入数据。

    注意事项

    总体来说,Oracle 中的数据导入和导出其实并不困难,但却是一件十分麻烦的事情,尤其是对于小编这种似懂非懂的新手。软件这种东西,还是要“知彼知已”,只有深入了解它,才能真正用好它。

    小编根据自己血的教训列几条注意事项,给大家参考。建议只针对新手,老鸟请自动忽略。

    • 第一,拿到数据之后,第一件事情应该是详细了解数据结构,最重要的是掌握表结构的相关信息;
    • 第二,在导入数据之前,需要建好数据依赖的表空间和目标表;
    • 第三,认真核对文件清单,比如除了数据文件之外,有没有.log 日志文件。对于非自建的.ctl 文件,务必确保控制命令中没有引用不存在的文件,比如 BADFILE、DISCARDFILE 等;
    • 第四,使用命令导入数据时,应确当前用户的权限不低于建表空间和表的用户。
    打赏
    微信
    支付宝
    微信二维码图片

    微信 扫描二维码打赏

    支付宝二维码图片

    支付宝 扫描二维码打赏

     

    除特别注明外,本站所有文章均为交通人原创,转载请注明出处来自http://www.hijtr.com/oracle-data-import/

    交通人博客是交通人工作室(JTR Studio)建立的交通人系列网站之一,是交通人工作室的主阵地,旨在整合和分享交通行业相关资讯,具体包括但不限于行业新闻、行业动态,以及行业相关规范、书籍、报告和软件等资源。

    发表评论

    表情 格式

    *

    1. 如果需要导入的数据涉及大量数据表,可以参考以下方法批量构建:Oracle:利用sql脚本批量建表空间(出处: 交通规划技术论坛)

      爱折腾的交通人 博 主 8年前 (2016-06-02) [0] [0]
    
    切换注册

    登录

    忘记密码 ?

    切换登录

    注册

    扫一扫二维码分享