往Oracel数据库批量插入数据

往Oracel数据库批量插入数据到目前为止,据我所知,有两种:
第一种,在cmd进入imp命令所在的目录,然后使用imp命令,这种方式批量导入数据速度很快,导入过程会有进程提示,如遇错误,也会告知,如果只是导入指定表格,格式是
imp username/password@orcl tables=(table1,table2,….tablen)
tables()括号里边为要导入数据的表格名称,(相对应导出的命令为exp user/pwd@server1 file=c:\temp\exp.dmp tables=(table1, table2))。
如果是整体导入,格式是:
imp username/password file=’D:\20180227.dmp’ full=y ignore=y
不过这种格式要求数据格式必须是dmp
第二种,假如数据格式为sql,上一种方式就行不通了,怎么办呢?PL SQL Developer的导入表工具很好地解决这个问题,
1.在PL SQL Developer操作界面菜单栏找到”工具”,在工具栏选项下边找到”导入表”,接下来的步骤,请参照下图:
这里写图片描述
在下边导入文件的地方选择你所想导入数据的SQL文件,然后点击导入,就可实现使用SQL语句批量导入数据,
在这里有个地方需要注意,导入方式这里记得要选择使用命令窗口导入,使用这种方式导入的好处是:在导入窗口详细描述了导入进度,如遇sql有错误,也会告诉错误的地方在哪里,当然最重要的是,这种方式导入速度很快。如下图:
这里写图片描述
如果成功会给出以下提示:
这里写图片描述
假如这一步选择的是”使用SQL*Plus导入,不仅执行效率超慢,而且在执行过程中有错误也不会及时给出提示,害你白白等待很长时间,最后可能一条数据都没导入。
我刚开始也是使用这种方式,结果1000多条数据,等了40来分钟都还没好,最后蹦出错误,去库里一查,一条数据都没导入,白白浪费了这几十分钟。
当然了,如果SQL语句是使用mysql或SQL Server导出来的,格式肯定有不少地方语法是不符合Oracle要求的,如果直接这样导入,注定是无法成功的,这需要对SQL修改成满足Oracle语法规范的才行。

猜你喜欢

转载自blog.csdn.net/shenxiaomo1688/article/details/81142998