我正在尝试从 Linux 建立 odbc 连接到 oracle 数据库。当我以 root 身份登录时,它可以工作。我的根配置文件如下:
more ~/.profile
export ODBCINI=/etc/unixODBC/odbc.ini
export ODBCSYSINI=/etc/unixODBC
但是,当我以普通用户身份登录时,无法进行 odbc 连接。我收到此错误:
[RODBC] ERROR: state IM002, code 0, message [unixODBC][Driver Manager]Data source name not found, and no default driver specified
我不确定这里有什么问题,但我想也许我可以向其他用户提供根配置文件,这可能会解决我的问题。如何向所有其他用户展示根配置文件?你知道这里可能发生什么吗?
附加信息:
这是我的 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)
)
)
这是 odbc.ini 的内容:
[Data]
Driver=Oracle
Description=Test
Trace=Yes
ServerName=//server1.example.com:1521/
Database=test
这是 ondbcinst.ini
[Oracle]
Description = Oracle ODBC Connection
Driver = /opt/oclient/instantclient_12_1/libsqora.so.12.1
Setup =
FileUsage =
答案1
首先确定是环境变量的问题。
在调用应用程序之前手动运行这些行。该应用程序必须从命令行调用。
export ODBCINI=/etc/unixODBC/odbc.ini
export ODBCSYSINI=/etc/unixODBC
如果有效,那么您可以将这些行添加到系统范围的/etc/profile
文件中。强制用户注销并重试。
答案2
如果您有一个数据库要连接,那么您可以执行以下操作
导出 TWO_TASK=db_SID
您可以将其放入 /etc/profile 中,然后您的工作就完成了。