使用 ODBC 连接到 OracleDB 时出现“[unixODBC][驱动程序管理器]未找到数据源名称,并且未指定默认驱动程序”

use*_*980 5 oracle-database

我正在尝试从 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)

小智 2

如果您有一个数据库要连接,那么您可以执行以下操作

导出 TWO_TASK=db_SID

您可以将其放入 /etc/profile 中,然后您的工作就完成了。