Создание и использование моделей отчетов на основе Oracle
Модель отчета на основе базы данных Oracle версии 9.2.0.3 и более поздней может быть создана при помощи конструктора моделей, диспетчера отчетов или среды MicrosoftOffice SharePoint Server 2007 при работе в режиме интеграции с 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.
Важно! |
---|
При создании представления источника данных для модели 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
При автоматическом создании модели отчета с использованием диспетчера отчетов или среды Office SharePoint Server столбцы, которые содержат неподдерживаемые типы данных, исключаются из модели. Кроме того, если неподдерживаемый тип данных является частью первичного ключа, не будет создана вся сущность.
При создании модели отчета при помощи конструктора моделей в нее добавляются все объекты, поэтому все перечисленные выше неподдерживаемые типы данных придется отфильтровать вручную.
Функции
Работа некоторых функций может зависеть от базы данных. Если в качестве длины для функций 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. |
DisableTS Truncation |
Boolean |
False |
Отключает явное усечение долей секунд типа данных TIMESTAMP при преобразовании в тип данных DATE. Поскольку по умолчанию Oracle производит округление при приведении временной метки к дате, а некоторым операциям требуется дата, а не временная метка, единственным способом гарантировать точность является явное усечение долей секунд перед преобразованием в дату. Усечение применяется также и к датам, поскольку транслятору запросов Oracle недоступны сведения о типе данных, поэтому он не в состоянии отличить тип timestamp от типа date. Это оказывает небольшое воздействие на производительность большинства операций с датами. В случае если временные метки не используются ни в одной из целевых баз данных, этот параметр можно установить в значение True, исключив ненужное усечение. |
EnableMath OpCasting |
Boolean |
False |
Включает приведение результата выполнения математических операций к десятичному формату Microsoft.NET Framework. Некоторые математические операции в запросах могут вернуть десятичное значение, сочетание точности и масштаба которого не могут быть представлены типом данных decimal .NET Framework. Поскольку результат вычисления можно явно привести к типу decimal, вряд ли пользователь построителя отчетов узнает, что это необходимо делать при разработке. Если явное приведение приходится делать слишком часто, этот параметр можно установить в значение True, чтобы оно производилось автоматически. |