• 今天我遇到了一个需求,是将一个DBF文件导入到Oracle库中,之前一直使用的是公司提供的迁移工具,但是不知道怎么回事今天一直报DBF文件无法访问之类的错误,尝试多次之后,一气之下弃之不用,另寻他法。

今天一直报DBF文件无法访问之类的错误,尝试多次之后,一气之下弃之不用,另寻他法。ODBC(Open Database Connectivity)是微软提供的,专门为解决异构数据库间的数据共享而产生的,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC,一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。

——以上内容来自百度

  • 废话不多说,我们首先打开ODBC数据源管理程序(32位),这里因为我们的PLSQL是32位的,所以它也只能读到32位的ODBC数据源。
  • 我们要导入DBF文件,就需要能够访问DBF文件的驱动程序,这个东西呢就是Microsoft Visual FoxPro,就是一个长着狐狸头的软件啦,安装方法不再阐述,请自行摸索。在安装完VF之后,在ODBC数据源中就能够找到图中红框中的这个数据源。(注意是Visual FoxPro Tables,不是Visual FoxPro Database)

dbeaver mysql怎么导入数据 dbf导入mysql_数据源

  • 在配置界面中,我们选择DBF文件所在的文件夹(不是选DBF文件,选择DBF所在的文件夹)

dbeaver mysql怎么导入数据 dbf导入mysql_数据库_02

  • 配置完成DBF数据源后,我们使用需要导入的Oracle数据库用户登入PLSQL,打开ODBC导入器(工具-ODBC导入器)。先配置ODBC数据源,在连接中选择之前配置好的数据源,连接到数据源;选择需要导入的表,在下方的结果预览中能够看到数据源中的数据即为正常。

dbeaver mysql怎么导入数据 dbf导入mysql_数据库_03

  • 切换Tab页到“到Oracle的数据”,选择需要导入的表的用户及其表名称,事务提交的行数可以根据需要导入的数据量适当的调整,我这里调整为1000条数据提交一次,导入的形式为覆盖导入(主键重复数据覆盖而非跳过)。在字段栏中,将DBF和Oracle数据库的字段进行对应,要注意字段类型的选择,不选择字段类型的话将不会导入该列数据。

dbeaver mysql怎么导入数据 dbf导入mysql_数据源_04

  • 完成导入,不光是DBF,EXCEL,ACCESS,SQLServer等都可以通过ODBC导入来实现数据的迁移。