ODBC를 사용하여 OracleDB에 연결할 때 "[unixODBC][드라이버 관리자] 데이터 소스 이름을 찾을 수 없고 기본 드라이버가 지정되지 않았습니다."가 나타납니다.

ODBC를 사용하여 OracleDB에 연결할 때 "[unixODBC][드라이버 관리자] 데이터 소스 이름을 찾을 수 없고 기본 드라이버가 지정되지 않았습니다."가 나타납니다.

Linux에서 oracle 데이터베이스에 대한 odbc 연결을 설정하려고 합니다. 루트로 로그인하면 작동합니다. 내 루트 구성 파일은 다음과 같습니다.

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에 넣으면 작업이 완료됩니다.

관련 정보