我正在尝试从 linux 建立到 oracle db 的 odbc 连接。当我以 root 身份登录时,它可以工作。我的根配置文件如下:
more ~/.profile
export ODBCINI=/etc/unixODBC/odbc.ini
export ODBCSYSINI=/etc/unixODBC
Run Code Online (Sandbox Code Playgroud)
但是,当我以普通用户身份登录时,我无法进行 odbc 连接。我收到此错误:
[RODBC] ERROR: state IM002, code 0, message [unixODBC][Driver Manager]Data source name not found, and no default driver specified
Run Code Online (Sandbox Code Playgroud)
我不确定这里的问题是什么,但我想也许我将 root 配置文件提供给其他用户它可能会解决我的问题。您如何向所有其他用户展示 root 配置文件?有什么想法可能会在这里发生吗?
附加信息:
这是我的 tnsnames.ora 文件,如下所示:
Data =
(DESCRIPTION =
(ADDRESS_LIST =
(LOAD_BALANCE = off)
(FAILOVER = ON)
(ADDRESS = (PROTOCOL = TCP)(HOST = server1.example.com )(PORT = 1521))
)
(CONNECT_DATA =
(service_name = Data)
)
)
Run Code Online (Sandbox Code Playgroud)
这就是 odbc.ini:
[Data]
Driver=Oracle
Description=Test
Trace=Yes
ServerName=//server1.example.com:1521/
Database=test
Run Code Online (Sandbox Code Playgroud)
这是 ondbcinst.ini
[Oracle]
Description = Oracle ODBC Connection
Driver = /opt/oclient/instantclient_12_1/libsqora.so.12.1
Setup =
FileUsage =
Run Code Online (Sandbox Code Playgroud)