Linuxでは、oracleデータベースへのodbc接続を確立しようとしています。 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 に入れると操作は完了です。