Oracle访问Access实现数据同步
标签:
odbc数据源映射网络驱动器全局数据库创建 |
分类: 数据迁移 |
1.创建Acess数据库test.mdb;并添加表emp
http://s8/middle/a32eff28x7a5253de7ec7&690
2.创建连接access的odbc数据源
http://s5/middle/a32eff28x7a5254bac8e4&690
3.配置oracle的监听
4.重启oracle监听程序C:/>lsnrctl reload或者 lsnrctl stop;lsnrctl start
5.在ORACLE_HOME\hs\admin\inithsodbc.ora文件中,增加如下内容:
HS_FDS_CONNECT_INFO = hsodbc#此处为ODBC数据源的名称,任意合法名称
HS_FDS_TRACE_LEVEL = off
6.在$ORACLE_HOME\network\admin\tnsnames.ora添加如下内容:
accessdb=
确认网络服务器能ping通:C:/> tnsping accessdb;
7.创建dblink:
SQL> create database link accessdb using 'accessdb';
Database link created.
8.访问Acess数据表emp
SQL> select * from emp@accessdb;
---------- ---------- ---------- ---------- ------------
----------
NOTE:
1.oracle支持异构服务,sys用户下有HS_BASE_CAPS即可
2.有帖子说,修改D:\oracle\product\10.2.0\db_1\hs\admin 下的listener.ora文件,其实不是,应修改最熟悉的那个network\admin\下的,否则,有抛出:
ORA-28545: 连接代理时 Net8 诊断到错误
Unable to retrieve text of NETWORK/NCR message 65535
ORA-02063: 紧接着 2 lines (起自 ACCESSDB) 的异常
3.access文件要在本机,网络上的不行,映射网络驱动器也不行,(否则会抛出 ORA-28500的异常)。至少我测试没成功,项目要求还必须是网络上的文件。
4.通过SQL> create database link accessdb using 'accessdb';创建的dblink,在访问Acess时报错
SQL> select * from emp@accessdb;
ERROR at line 1:
ORA-02085: database link ACCESSDB.REGRESS.RDBMS.DEV.US.ORACLE.COM
connects to
HO.WORLD
查询ORA-02085的注释:database link name connects
to name
cause: The database link attempted to connect to a database with a
different name.
The name of the database link must be the same name as the name of
the database.
------------------------------------ ----------- --------------
global_names
---------- ---------- ---------- ---------- ------------ ----------
最后,Access访问oracle比较简单,菜单中文件---获取外部数据源--链接表,下拉框选择odbc,指向对应的oracle配置的odbc即可。

加载中…