Access数据导入到Oracle及报错处理方法

 

一 配置oracle的本地Net服务名

   1.必须装oracle客户端

   2.找到Oracle net configuration assistant 如下图创建

Access数据导入到Oracle及报错处理方法

Access数据导入到Oracle及报错处理方法

Access数据导入到Oracle及报错处理方法

Access数据导入到Oracle及报错处理方法

Access数据导入到Oracle及报错处理方法

Access数据导入到Oracle及报错处理方法

Access数据导入到Oracle及报错处理方法

Access数据导入到Oracle及报错处理方法

Access数据导入到Oracle及报错处理方法

下一步,完成。

创建ODBC数据源

Access数据导入到Oracle及报错处理方法

 

Access数据导入到Oracle及报错处理方法

Access数据导入到Oracle及报错处理方法

Data Source Name :自己写一个名字

Description :可以不写

TNS Service Name :点向下的选择第一步创建的oracle 本地Net服务名(如下图)

User ID :数据库用户名

Access数据导入到Oracle及报错处理方法

点击Test Connection测试,输入自己的用户名密码,如下图

Access数据导入到Oracle及报错处理方法

出现下面提示,表示成功

Access数据导入到Oracle及报错处理方法

access数据导出

步骤如下图:

Access数据导入到Oracle及报错处理方法

 导出的时候表名必需改成大写

 Access数据导入到Oracle及报错处理方法

然后,所有表的列名必须大写

Access数据导入到Oracle及报错处理方法

特别提醒,上面两步特别重要。注意改大写的时候,别改错。

选择第二步创建的ODBC数据源

 Access数据导入到Oracle及报错处理方法

 输入数据库密码,点OK

 Access数据导入到Oracle及报错处理方法

 导出成功,注:直接导入到Oracle数据库中。(注意:不用手动先去Oracle里面创建表,会自动生成)

 Access数据导入到Oracle及报错处理方法

 

导入过程中的2个小问题及解决

1.  Ora-24801:在OCI_lob函数中非法的参数值

Access数据导入到Oracle及报错处理方法

   把一张含有“备注”字段的表通过ODBC导出到Oracle的时候一直出现如上图所示的提示信息。尝试去掉相关字段中空格字符,去掉字段为空的记录,还是导出失败。最后偶然发现,重新建一张相同结构的空表,然后复制原表的记录,再粘贴到新表中,导出到Oracle就没有问题。

2.  Ora-01401:插入的值对于列过大

Access数据导入到Oracle及报错处理方法

   同样是通过ODBC导出到Oracle时碰到的问题,这主要是因为AccessOracle对于字段的长度定义同。Access定义的是字符长度,Oracle定义的是字节长度,碰到有中文这些双字节的字符的字段就会发生上面的问题。只要把这些字段按照字节长度设置就可以了。

 myhoop 2012-8-14于成都