如何配置Oracle以便能够查询在同一服务器(localhost)中显示的MS Access数据库(.accdb)?
要遵循哪些步骤?
答案 0 :(得分:3)
Oracle版本:11g - > 11.2.0.1.0
Windows版本:Windows Server 2008
完成步骤:
第1步:创建系统DSN
首先转到ODBC数据源管理员,单击“系统DSN”选项卡。使用以下参数创建DSN(您可以选择您喜欢的名称链接,但是您需要在整个过程中保持相同的名称)。
在我们的案例中:
确保在保存后列出此列表:
名称 - 驱动程序
访问 - Microsoft Access驱动程序(* .mdb,*。accdb)
第2步:修改listener.ora文件
让我们找到该文件。在我们的案例中:
我们需要在最后添加以下文字。顺便说一句,看看我发布的“oracle_home' C:驱动器中的目录。那是因为我有多个与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
第4步:修改tnsnames.ora文件:
让我们找到该文件。在我们的案例中:
要修改的参数:
access =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = host_name) (PORT = 1521))
(CONNECT_DATA =
(SID = access)
)
(HS=OK)
)
请确保在“访问权限”之前不要留空格。参数。
第5步:重启监听器
El servicio" access" tiene 1 instancia(s)。
La instancia" access",con estado UNKNOWN,tiene 1 manejador(es)para este ser vicio ...
El comando ha terminado correctamente
第6步:测试与访问数据库的连接
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)
STEP 7:在Oracle中创建数据库链接并查询Ms Access数据库:
创建数据库链接(始终为** sys ):**
CREATE public DATABASE LINK accessdblink USING 'access';
*'访问':与 tnsnames.ora 中的名称相同 - > ' access ='
查询数据库:
SELECT * FROM table_name@accessdblink;