Oracle 기반 보고서 모델 만들기 및 사용

SharePoint 통합 모드에서 실행 중인 경우 모델 디자이너, 보고서 관리자 또는 MicrosoftOffice SharePoint Server 2007을 사용하여 9.2.0.3 이상 버전을 실행하는 Oracle 데이터베이스를 기반으로 하는 보고서 모델을 생성할 수 있습니다.

Oracle 데이터베이스를 기반으로 모델을 생성하려면 Oracle 클라이언트 버전 9.2.0.3 이상을 실행해야 합니다. Oracle 클라이언트 디렉터리는 시스템 경로에 있어야 하며 보고서 서버 Windows 서비스 및 보고서 서버 웹 서비스 모두 이 디렉터리의 파일에 액세스할 수 있는 권한이 있어야 합니다.

다음 사항도 확인하십시오.

  • Reporting Services 설치에서 Reporting Services Oracle 데이터 처리 확장 프로그램을 사용할 수 있어야 합니다.

  • 보고서 서버 Windows 서비스 및 보고서 서버 웹 서비스에서 액세스할 수 있는 폴더에 Oracle 클라이언트가 설치되어 있어야 합니다.

  • 보고서 서버 Windows 서비스, 보고서 서버 웹 서비스 및 무인 실행 계정에 모두 Oracle 클라이언트 설치에 대한 읽기 및 실행 디렉터리 액세스 권한이 있어야 합니다.

연결 문자열

Oracle 데이터베이스를 기반으로 보고서 모델을 작성하는 경우 연결 문자열은 다음과 같습니다.

Data Source="Oracle9";Unicode="True"

여기서 "Oracle9"는 Oracle 서버의 논리적 이름을 나타냅니다.

[!참고]

Oracle 데이터베이스에 대한 연결 문자열을 지정하는 경우 ServerName이 tnsnames.ora 구성 파일에 정의된 이름과 일치해야 합니다.

Oracle 데이터 원본에 연결하는 방법은 Oracle 데이터베이스에서 보고서 데이터 집합 만들기를 참조하십시오.

중요 정보중요

Oracle 모델에 대한 데이터 원본 뷰를 생성하는 경우 데이터 원본 뷰 마법사의 데이터 원본 선택 페이지에서 고급 단추를 클릭하고 고급 데이터 원본 뷰 옵션 대화 상자에서 데이터베이스 개체를 필터링할 스키마 이름을 선택해야 합니다. 그런 다음 모델에 추가할 데이터베이스 개체를 선택해야 합니다.

기능 제한

Oracle 데이터베이스의 기본 동작으로 인해 SMDL(Semantic Model Definition Language) 쿼리 변환기를 Oracle 데이터베이스와 함께 사용할 경우 일부 동작이 달라질 수 있습니다. 예를 들어 대상 데이터베이스의 디자인 제한 및 버그에 대한 해결 방법을 제어하는 데 필요한 구성 스위치 및 기능에 사소한 차이점이 있을 수 있습니다. 다음에서는 이러한 차이점을 설명합니다.

데이터 형식

SMDL에서는 다음 Oracle 데이터 형식만 지원합니다.

SMDL 유형

Oracle 유형

String

CHAR, NCHAR, VARCHAR2, NVARCHAR2, LONG, CLOB, NCLOB

Decimal 또는 Integer

NUMBER

Boolean

NUMBER

Oracle 열이 DSV(데이터 원본 뷰) 파일에서 Boolean으로 표시되어 있으면 기본 열은 NUMBER여야 하고 0, 1 또는 NULL 값만 포함해야 합니다.

Date

DATE, TIMESTAMP

Binary

RAW, LONGRAW, BLOB

SMDL에서는 다음을 포함하여 위에 나열되지 않은 데이터 형식을 지원하지 않습니다.

  • BINARY_FLOAT

  • BINARY_DOUBLE

  • TIMESTAMP WITH TIME ZONE

  • TIMESTAMP WITH LOCAL TIME ZONE

  • INTERVAL YEAR TO MONTH

  • INTERVAL DAY TO SECOND

  • ROWID

  • UROWID

  • BFILE

보고서 관리자나 Office SharePoint Server 를 사용하여 보고서 모델을 자동으로 생성하는 동안 지원되지 않는 데이터 형식이 포함된 열은 모델에서 제외됩니다. 또한 지원되지 않는 데이터 형식이 기본 키의 일부이면 전체 엔터티가 생성되지 않습니다.

모델 디자이너를 사용하여 보고서 모델을 만드는 경우 모든 항목이 보고서 모델에 추가되므로 모델을 구체화할 때 위에 나열된 지원되지 않는 데이터 형식을 모두 수동으로 필터링하여 제외해야 합니다.

함수

일부 함수의 동작은 기본 데이터베이스에 따라 달라질 수 있습니다. Left, Right 또는 Substring 함수의 길이 인수에 0보다 작은 값을 지정하는 경우 이러한 동작은 SMDL에 정의되어 있지 않습니다.

구성 스위치

기본 데이터 원본으로 인해 많은 구성 스위치를 사용하여 환경 및 데이터 원본의 세부 사항에 따라 쿼리 변환기의 동작을 수정할 수 있습니다. 다음 스위치는 기본적으로 <SysDrive>:\Program Files\Microsoft SQL Server\MSSQL.X\Reporting Services\ReportServer\ 폴더에 설치되는 RSReportServer.config 파일에 정의되어 있습니다.

이름

유형

정의 기본값

설명

Disable

NO_MERGE

InLeftOuters

Boolean

False

이 스위치는 Oracle 쿼리에 대해 생성되는 NO_MERGE 최적화 프로그램 힌트를 해제합니다.

Oracle 쿼리 최적화 프로그램의 기술적인 문제로 인해 왼쪽 우선 외부 조인과 관련된 특정 쿼리 클래스는 실패하거나 잘못된 결과를 반환합니다. 따라서 Reporting Services Oracle 쿼리 변환기는 일부 왼쪽 우선 외부 조인에서 NO_MERGE 최적화 프로그램 힌트를 사용합니다. 이렇게 하면 쿼리가 올바로 실행되지만 성능은 저하될 수 있습니다. Oracle에서 이 문제를 해결하는 소프트웨어 업데이트를 다운로드하는 경우 이 스위치를 True로 설정하여 NO_MERGE 해결 방법을 해제할 수 있습니다.

EnableUnistr

Boolean

False

이 스위치는 UNISTR 함수를 명시적으로 사용하여 Oracle 쿼리의 유니코드 리터럴을 나타냅니다.

일반적으로 데이터베이스의 로캘이 쿼리에 포함된 문자열 상수의 로캘과 일치하는 경우 유니코드 문자열 상수를 쿼리의 일반 문자열로 생성할 수 있습니다. Oracle 데이터베이스의 NLS_CharacterSet에 의해 정의된 코드 페이지 내에 없는 리터럴 상수를 사용하는 경우 명시적 UNISTR 함수를 사용하여 유니코드 리터럴을 나타내야 합니다. 이 스위치를 True로 설정하면 쿼리의 모든 유니코드 문자열 상수가 Oracle UNISTR 함수를 사용하여 인코딩됩니다.  

DisableTS

Truncation

Boolean

False

이 스위치는 DATE로 변환할 때 TIMESTAMP에서 초 부분을 명시적으로 자르는 동작을 해제합니다.

Oracle에서는 기본적으로 타임스탬프를 날짜로 캐스팅하는 반올림 동작을 사용하며 특정 날짜 연산에는 타임스탬프 대신 날짜가 필요하므로 이러한 연산의 정확성을 보장하려면 날짜로 변환하기 전에 timestamp 데이터 형식에서 초 부분을 명시적으로 잘라야 합니다. Oracle 쿼리 변환기에는 타임스탬프와 날짜를 구분하기 위해 기본 Oracle 유형 정보에 액세스할 수 있는 권한이 없으므로 이러한 자르기 동작은 날짜에도 적용됩니다. 이로 인해 많은 날짜 연산의 성능이 약간 저하됩니다. 타임스탬프가 대상 데이터베이스에 전혀 사용되지 않는 경우 이 스위치를 True로 설정하여 불필요한 자르기 동작이 발생하지 않도록 할 수 있습니다.

EnableMath

OpCasting

Boolean

False

이 스위치는 수치 연산의 결과를 Microsoft.NET Framework decimal 형식으로 캐스팅하는 동작을 설정합니다.

쿼리의 특정 수치 연산으로 인해 .NET Framework decimal 데이터 형식으로 나타낼 수 없는 전체 자릿수와 소수 자릿수 조합의 decimal 값이 생성될 수 있습니다. 명시적으로 이러한 decimal 식의 결과를 decimal로 캐스팅할 수 있지만 보고서 작성기 사용자가 디자인 타임에 이러한 작업의 필요성을 알아내는 것은 거의 불가능합니다. 이러한 식이 자주 생성되는 경우 이 스위치를 True로 설정하여 필요한 캐스트 작업을 자동으로 수행할 수 있습니다.