【发布时间】:2014-06-06 11:40:59
【问题描述】:
如何配置 Oracle 以便能够查询位于同一服务器 (localhost) 中的 MS Access 数据库 (.accdb)?
要遵循哪些步骤?
【问题讨论】:
标签: oracle ms-access oracle11g odbc
如何配置 Oracle 以便能够查询位于同一服务器 (localhost) 中的 MS Access 数据库 (.accdb)?
要遵循哪些步骤?
【问题讨论】:
标签: oracle ms-access oracle11g odbc
Oracle 版本:11g -> 11.2.0.1.0
Windows 版本:Windows Server 2008
要完成的步骤:
第 1 步:创建系统 DSN
首先进入 ODBC 数据源管理器,点击系统 DSN 选项卡。使用以下参数创建 DSN(您可以选择您喜欢的名称链接,但您需要在整个过程中保持相同的名称)。
在我们的例子中:
确保您在保存后看到它:
姓名 - 司机
访问 - Microsoft Access 驱动程序 (*.mdb,*.accdb)
第 2 步:修改 listener.ora 文件
让我们找到文件。在我们的例子中:
我们需要在末尾添加以下文本。顺便说一下,看看我在 C: 驱动器中发布为“oracle_home”的目录。那是因为我有多个与 Oracle 相关的目录,我仍然不理解它,但在我的情况下工作。也许你的只有一个。
需要修改的参数:
在第一个区块中:
在第二块:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC=
(SID_NAME = access)
(ORACLE_HOME = C:\app\Administrador\product\11.2.0\dbhome_1)
(PROGRAM = dg4odbc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = host_name)(PORT = 1521))
)
)
确保您修改的文件中“SID_LIST_LISTENER”或“LISTENER”之前没有空格:
第 3 步:创建 initaccess.ora 文件
转到:
在那里,复制“initdg4odbc.ora”文件(我复制后删除了它)。将以下文本添加到文件中:
HS_FDS_CONNECT_INFO = access
HS_FDS_TRACE_LEVEL = 0
第四步:修改 tnsnames.ora 文件:
让我们找到文件。在我们的例子中:
要修改的参数:
access =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = host_name) (PORT = 1521))
(CONNECT_DATA =
(SID = access)
)
(HS=OK)
)
请确保不要在 'access =' 参数之前留有空格。
第 5 步:重启监听器
El servicio "access" tiene 1 instancia(s).
La instancia "access", con estado UNKNOWN, tiene 1 manejador(es) para este ser 副...
El comando ha Terminado Correctamente
第 6 步:测试与 access 数据库的连接
TNS Ping Utility for 64-bit Windows: Version 11.2.0.1.0 - Production on 06-JUN-2
014 11:04:35
Copyright (c) 1997, 2010, Oracle. All rights reserved.
Archivos de parßmetros utilizados:
E:\app\Administrador\product\11.2.0\dbhome_1\network\admin\sqlnet.ora
Adaptador TNSNAMES utilizado para resolver el alias
Intentando contactar con (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = CUPCA
KE) (PORT = 1521)) (CONNECT_DATA = (SID = access)) (HS=OK))
Realizado correctamente (20 mseg)
第 7 步:在 Oracle 中创建 DB Link 并查询 Ms Access 数据库:
创建数据库链接(始终为 **sys):**
CREATE public DATABASE LINK accessdblink USING 'access';
* 'access':与 tnsnames.ora 中的名称相同 -> 'access = '
查询数据库:
SELECT * FROM table_name@accessdblink;
【讨论】: