Поделиться через


Создание и использование моделей отчетов на основе Oracle

Модель отчета на основе базы данных Oracle версии 9.2.0.3 и более поздней может быть создана с помощью конструктора моделей, диспетчера отчетов или среды Microsoft Office SharePoint Server 2007 или SharePoint Server 2010 в режиме интеграции с SharePoint.

Для создания моделей отчетов на основе баз данных Oracle необходима версия клиента Oracle 9.2.0.3 или более поздняя. Каталог клиента Oracle должен быть включен в системный путь, а служба Windows и веб-служба сервера отчетов должны иметь разрешения на доступ к файлам в этом каталоге.

Кроме того, обязательно выполнение следующих условий.

  • Модуль обработки данных Oracle для служб Службы Reporting Services доступен в установке служб Службы Reporting Services.

  • Клиент Oracle установлен в папку, которая доступна службе Windows и веб-службе сервера отчетов.

  • Служба Windows сервера отчетов, веб-служба сервера отчетов и учетная запись автоматического выполнения должны иметь разрешения на чтение и выполнение в каталоге установки клиента Oracle.

Строки соединения

При построении модели отчета на основе базы данных Oracle указывается следующая строка соединения:

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

, где «Oracle9» представляет собой логическое имя сервера Oracle.

ПримечаниеПримечание

При задании строки соединения с базой данных Oracle параметр ServerName должен иметь соответствие в файле конфигурации tnsnames.ora.

Дополнительные сведения о соединении с источником данных Oracle см. в разделе Тип соединения Oracle (SSRS).

Важное примечаниеВажно!

При создании представления источника данных для модели Oracle в мастере представлений источников данных на странице «Выбор источника данных» нажмите кнопку Дополнительно и в диалоговом окне Расширенные параметры представления источника данных выберите имя схемы для фильтрации объектов базы данных. Затем выберите объекты базы данных, которые следует включить в модель.

Функциональные ограничения

Из-за особенностей внутреннего устройства базы данных Oracle транслятор запросов на языке определения семантической модели (SMDL) имеет некоторые отличия при работе с ней. Это может привести к небольшим отличиям в функциональных возможностях и параметрах конфигурации, необходимых для реализации обходных путей при решении проблем и ограничений разработки в целевой базе данных. Ниже приведено описание этих отличий.

Типы данных

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

При автоматическом создании модели отчета с помощью диспетчера отчетов или продукта SharePoint столбцы, которые содержат неподдерживаемые типы данных, исключаются из модели. Кроме того, если неподдерживаемый тип данных является частью первичного ключа, не будет создана вся сущность.

При создании модели отчета при помощи конструктора моделей в нее добавляются все объекты, поэтому все перечисленные выше неподдерживаемые типы данных придется отфильтровать вручную.

Функции

Работа некоторых функций может зависеть от базы данных. Если в качестве длины для функций Left, Right и Substring указано значение меньше нуля, в SMQL результат не будет определен.

Параметры конфигурации

Для разных базовых источников данных доступно множество параметров конфигурации, влияющих на работу транслятора запросов в зависимости от их специфики и окружения. Следующие параметры определены в файле RSReportServer.config, который по умолчанию находится в каталоге <SysDrive>:\Program Files\Microsoft SQL Server\MSSQL.X\Reporting Services\ReportServer\.

Название

Тип

Определение по умолчанию

Описание

Disable

NO_MERGE

InLeftOuters

Boolean

False

Отключает подсказку оптимизатору NO_MERGE, которая формируется для запросов Oracle.

Из-за имеющихся в оптимизаторе запросов Oracle технических проблем некоторые категории запросов с левым внешним соединением завершаются ошибкой или возвращают неверные результаты. Поэтому транслятор запросов Oracle для служб Службы Reporting Services включает в запросы с левым внешним соединением подсказку NO_MERGE. Это гарантирует правильную работу, однако может отрицательно сказаться на производительности. Если от Oracle будет получено обновление программного обеспечения, которое решает данную проблему, этот параметр можно установить в значение True, отключив формирование подсказки NO_MERGE.

EnableUnistr

Boolean

False

Принудительно включает явное использование функции UNISTR для представления в запросах Oracle литералов в Юникоде.

Если локаль базы данных совпадает с локалью символьной строки, содержащейся в запросе, то строковые константы в Юникоде могут формироваться в виде обычных строк. Если указана символьная константа, которой нет соответствия в кодовой странице, определенной параметром NLS_CharacterSet базы данных Oracle, явное применение функции UNISTR для представления литералов в Юникоде является обязательным. Если этот параметр установлен в значение True, то все строковые константы в Юникоде, содержащиеся в запросе, будут закодированы с помощью функции UNISTR базы данных Oracle.  

DisableTSTruncation

Truncation

Boolean

False

Отключает явное усечение долей секунд типа данных TIMESTAMP при преобразовании в тип данных DATE.

Поскольку по умолчанию Oracle производит округление при приведении отметки времени к дате, а некоторым операциям требуется дата, а не отметка времени, единственным способом гарантировать точность является явное усечение долей секунд перед преобразованием в дату. Усечение применяется также и к датам, поскольку транслятору запросов Oracle недоступны сведения о типе данных, поэтому он не в состоянии отличить тип timestamp от типа date. Это оказывает небольшое воздействие на производительность большинства операций с датами. В случае если отметки времени не используются ни в одной из целевых баз данных, этот параметр можно установить в значение True, исключив ненужное усечение.

EnableMath

OpCasting

Boolean

False

Включает приведение результата выполнения математических операций к десятичному формату Microsoft .NET Framework.

Некоторые математические операции в запросах могут вернуть десятичное значение, сочетание точности и масштаба которого не могут быть представлены типом данных decimal .NET Framework. Поскольку результат вычисления можно явно привести к типу decimal, вряд ли пользователь построителя отчетов узнает, что это необходимо делать при разработке. Если явное приведение приходится делать слишком часто, этот параметр можно установить в значение True, чтобы оно производилось автоматически.

Журнал изменений

Обновленное содержимое

Обновлено имя параметра конфигурации, который отключает явное усечение долей секунд типа данных TIMESTAMP при преобразовании в тип данных DATE. Правильное имя параметра — DisableTSTruncation.