Oracle Call Interface를 사용하여 Oracle Database에 액세스

OCI(Oracle Call Interface)로 개발된 애플리케이션을 사용하는 경우 OCI 연결 문자열 또는 Essbase 서버tnsnames.ora 구성 파일에 정의된 네트 서비스 이름을 사용하여 Essbase 로드 규칙을 Oracle Database에 연결할 수 있습니다.

Oracle Call Interface 연결 문자열을 사용하는 규칙 속성

OCI 연결 문자열을 사용하여 Essbase 로드 규칙을 Oracle Database에 연결하려면

  1. Essbase 웹 인터페이스에서 기존 규칙을 열거나 새 규칙을 생성합니다(접근 및 편집 규칙, 새 차원 빌드 규칙 생성 또는 새 데이터 로드 규칙 생성 참조).

  2. 소스 속성을 누릅니다.


    Essbase 웹 인터페이스의 규칙 편집기에 있는 소스 속성 단추

  3. SQL 속성을 누릅니다.

  4. 속성에서 OCI(Oracle Call Interface)를 선택합니다.

  5. 서버 필드에 Oracle Database 접속 문자열을 <host>:<port>/<service_name> 형식으로 입력합니다.

  6. 질의 필드에 Oracle Database에서 필요한 데이터에 액세스하는 SQL 질의를 입력합니다.

  7. 사용자 이름비밀번호 필드에서 Oracle Database 스키마에 액세스하는 데 필요한 인증서를 제공합니다. 이 정보는 데이터 미리보기에 사용되지만 규칙에 저장되지 않습니다.


    SQL 속성 대화상자 선택된 Properties 옵션은 OCI(Oracle Call Interface)입니다. [서버] 필드에는 DatabaseServerName:PortNumber/ServiceName 형식의 OCI 접속 문자열이 있습니다. 샘플 SQL 쿼리는 [조회] 필드에 있습니다. 사용자 이름 및 비밀번호가 입력됩니다.

  8. 미리보기를 눌러 규칙이 데이터를 연결 및 검색한 다음 규칙을 저장하고 닫을 수 있는지 확인합니다.

구성 파일에서 사전 정의된 Oracle Call Interface를 사용하여 규칙 로드

Essbase 서버의 구성 파일에 정의된 net_service_name을 사용하여 Oracle Database에 Essbase 로드 규칙을 연결하려면

  1. Essbase 서버에서 <Oracle Home>/network/admin에 구성 파일(예: tnsnames.ora)을 생성합니다.

    구성 파일이 이미 있는 경우 OCI(Oracle Call Interface)를 사용하여 Oracle Database에 접속하기 위한 적합한 항목이 있는지 확인하십시오. 그렇지 않으면 지금 구성합니다. 예를 들면 다음과 같습니다.

    OCISQL =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = oraclehost.example.com)(PORT = 1521))
        )
        (CONNECT_DATA =
          (service_name = orcl.example.com)
          (SERVER = DEDICATED)
        )
      )
    • net_service_name은 OCISQL입니다. 다음 단계에 필요한 이 이름을 기록해 두십시오.
    • 호스트는 oraclehost.example.com입니다.
    • 포트는 1521입니다.
    • 서비스 이름은 orcl.example.com입니다.
  2. Essbase 웹 인터페이스에서 기존 데이터 로드 또는 차원 빌드 규칙을 열거나 새 규칙을 생성합니다(접근 및 편집 규칙, 새 차원 빌드 규칙 생성 또는 새 데이터 로드 규칙 생성 참조).

  3. 소스 속성을 누릅니다.


    Essbase 웹 인터페이스의 규칙 편집기에 있는 소스 속성 단추

  4. SQL 속성을 누릅니다.

  5. 속성에서 OCI(Oracle Call Interface)를 선택합니다.

  6. 서버 필드에 tnsnames.ora 구성 파일에 사용된 net_service_name을 입력합니다. 1단계의 예에 따라 OCISQL를 입력합니다.

  7. 질의 필드에 Oracle Database에서 필요한 데이터에 액세스하는 SQL 질의를 입력합니다.

  8. 사용자 이름비밀번호 필드에서 Oracle Database 스키마에 액세스하는 데 필요한 인증서를 제공합니다. 이 정보는 데이터 미리보기에 사용되지만 규칙에 저장되지 않습니다.


    SQL 속성 대화상자 선택된 Properties 옵션은 OCI(Oracle Call Interface)입니다. Server 필드에는 OCI 연결 net_service_name이 있습니다. 샘플 SQL 쿼리는 [조회] 필드에 있습니다. 사용자 이름 및 비밀 번호가 입력됩니다.

  9. 미리보기를 눌러 규칙이 데이터를 연결 및 검색한 다음 규칙을 저장하고 닫을 수 있는지 확인합니다.

연결 문제해결

Windows에서는 OCI(Oracle Call Interface) 연결 문자열을 사용하는 규칙으로 데이터를 미리 보거나 차원 빌드 또는 데이터 로드를 실행하면 다음 오류 메시지와 함께 실패할 수 있습니다.

Attempt to connect to OCI failed. [ORA-12638: Credential retrieval failed].

이 문제의 원인은 버전 19c Oracle Database 서버 및 19c 클라이언트(이 경우 Essbase Server가 설치된 클라이언트)에 설정이 없거나 tnsnames.ora(또는 sqlnet.ora)에 구성된 다음 설정이 있다는 것입니다. SQLNET.AUTHENTICATION_SERVICES=(NTS)

해결 방법은 Essbase Server 시스템에서 SQLNET.AUTHENTICATION_SERVICES=(NONE)를 구성하는 것입니다.

  1. <Oracle Home>/network/admin에서 구성 파일을 찾습니다.

  2. 파일을 열고 SQLNET.AUTHENTICATION_SERVICES=(NONE)를 추가합니다.

  3. Essbase 애플리케이션을 다시 시작합니다.

주:

SQLNET.AUTHENTICATION_SERVICES 설명서에서 Oracle Database 19c에 대한 사용 노트를 참조하십시오.