Oracle异构服务是Oracle DB的一个特性,它允许数据库通过ODBC驱动程序与非Oracle DB进行对话。
使用ODBC客户端工具(如isql )调试ODBC驱动程序相当简单。
使用isql -我可以在初始命令提示符下输入驱动程序信息。isql和类似的工具接受ODBC DSN名称,并直接加载驱动程序。因此,当我在GDB命令提示符下键入: info sharedlibrary时,我会看到加载了我感兴趣的调试的ODBC共享库。
如何使用sqlplus或其他Oracle客户端工具进行相同的操作?但是,对于sqlplus,不知道什么时候加载驱动程序。
如何使用Oracle异构服务调试ODBC驱动程序(“动态加载库”)?
环境: Linux调试器: GDB Oracle异构服务:conce.htm
发布于 2018-10-09 18:06:07
sqlplus
(CLI)或sqldeveloper
(GUI)纯粹是执行对Oracle数据库的查询的接口。在Oracle HS上下文中,工具本身不加载ODBC驱动程序。通过dg4odbc
间接加载ODBC驱动程序的是Oracle数据库。我花了一段时间才发现这个事实。为了使用gdb
进行调试,请按照以下步骤进行:
# Connect to Oracle DB:
sqlplus system/oracle@0.0.0.0:1521/orcl12c
# After connecting, dg4odbc is still not activated
# Run a single query for Oracle DB to load the ODBC driver
# After, initial query dg4odbc is active
[oracle@oracle_vm ~]$ ps aux|grep dg4odbc
oracle 17905 17.5 1.0 497392 63244 ? Ssl 13:56 0:01 dg4odbcNORTHWIND_MYSQL (LOCAL=NO)
# Use the PID from above process to debug in GDB
[oracle@oracle_vm ~]$ gdb dg4odbc 17905
# You can now debug the ODBC driver which is loaded by dg4odbc
# You can check by running "info sharedlibrary" at the GDB prompt
# Happy Debugging :)
https://stackoverflow.com/questions/50613208
复制相似问题