Partilhar via


Criando e usando modelos de relatório com base em Oracle

Você pode gerar modelos de relatório com base em um banco de dados Oracle executando a versão 9.2.0.3 ou posterior, com o Designer de Modelo, o Gerenciador de Relatórios ou o Microsoft Office SharePoint Server 2007 ou o SharePoint Server 2010 ao executar no modo integrado do SharePoint.

Para gerar modelos com base em bancos de dados Oracle, você deve executar um cliente Oracle versão 9.2.0.3 ou posterior. O diretório do cliente Oracle deve estar localizado no caminho do sistema e tanto o serviço Servidor de Relatório do Windows e Web Servidor de Relatórios deve ter permissões para acessar os arquivos neste diretório.

Além disso, verifique:

  • A extensão de processamento de dados Reporting Services Oracle está disponível em sua instalação Reporting Services.

  • O cliente Oracle está instalado em uma pasta que pode ser acessada pelo serviço Servidor de Relatórios do Windows e Web Servidor de Relatórios.

  • O serviço Servidor de Relatório do Windows, Web Servidor de Relatório e as contas de execução autônomas devem todas ter acesso de Leitura e Execução à instalação do cliente Oracle.

Cadeias de conexão

Ao criar um modelo de relatório com base em um banco de dados Oracle, sua cadeia de conexão parece semelhante à:

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

sendo que "Oracle9" representa o nome lógico do servidor Oracle.

ObservaçãoObservação

Quando você especifica uma cadeia de conexão para o banco de dados Oracle, o ServerName deve corresponder aos nomes definidos no arquivo de configuração tnsnames.ora.

Para obter mais informações sobre como se conectar a uma fonte de dados Oracle, consulte Tipo de conexão do Oracle (SSRS).

Observação importanteImportante

Ao gerar uma exibição da fonte de dados para o seu modelo Oracle, certifique-se de clicar no botão Avançado na página Selecionar uma Fonte de Dados do Assistente de Exibição da Fonte de Dados e, na caixa de diálogo Opções Avançadas de Exibição da Fonte de Dados, selecione o nome do esquema para filtrar os objetos do banco de dados. Selecione os objetos do banco de dados que deseja adicionar ao seu modelo.

Limitações funcionais

Devido ao compartamento subjacente do banco de dados Oracle, há algumas diferenças de comportamento no tradutor de consulta da linguagem SMDL quando usado com um banco de dados Oracle. Esses comportamentos podem incluir diferenças menores nas chaves de funcionalidade e configuração exigidas para controlar as soluções alternativas para bugs e limitações de design no banco de dados de destino. A seguir, uma descrição dessas diferenças.

Tipos de dados

A linguagem SMDL oferece suporte somente aos seguintes tipos de dados Oracle.

Tipo SMDL

Tipo Oracle

String

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

Decimal ou Integer

NUMBER

Boolean

NUMBER

Se uma coluna Oracle estiver marcada como Boolean no arquivo de exibição da fonte de dados (DSV), a coluna subjacente deverá ser NUMBER e contém somente os valores 0, 1 ou NULL.

Date

DATE, TIMESTAMP

Binary

RAW, LONGRAW, BLOB

SMDL não oferece suporte a qualquer tipo de dados que não esteja listado acima, incluindo:

  • BINARY_FLOAT

  • BINARY_DOUBLE

  • TIMESTAMP WITH TIME ZONE

  • TIMESTAMP WITH LOCAL TIME ZONE

  • INTERVAL YEAR TO MONTH

  • INTERVAL DAY TO SECOND

  • ROWID

  • UROWID

  • BFILE

Durante a geração automática de um modelo de relatório usando o Gerenciador de Relatórios ou um produto do SharePoint, as colunas que contêm tipos de dados não suportados são excluídas do modelo. Além disso, se um tipo de dados sem-suporte fizer parte de uma chave primária, a entidade inteira não será gerada.

Ao criar um modelo de relatório usando o Designer de Modelo, tudo será adicionado ao modelo de relatório; contudo, você terá que filtrar todos os tipos de dados não suportados listados acima manualmente ao refinar o modelo.

Funções

O comportamento de algumas funções pode depender do banco de dados subjacente. Se você especificar um valor menor que zero para o argumento de comprimento na função Left, Right ou Substring, o comportamento será indefinido no SMQL.

Chaves de configuração

Devido à fonte de dados subjacente, muitas chaves de configuração estão disponíveis para modificar o comportamento do tradutor de consultas com base nas particularidades da fonte de dados e do ambiente. As seguintes chaves são definidas no arquivo RSReportServer.config, que é instalado na pasta <SysDrive>:\Program Files\Microsoft SQL Server\MSSQL.X\Reporting Services\ReportServer\ por padrão.

Nome

Tipo

Definição padrão

Descrição

Disable

NO_MERGE

InLeftOuters

Boolean

False

A chave desativa a dica do otimizador NO_MERGE gerada para consultas Oracle.

Devido a problemas técnicos no otimizador de consultas Oracle, determinadas classes de consultas envolvendo junções externas esquerdas falharão ou retornarão resultados incorretas. Portanto, o tradutor de consultas Oracle Reporting Services usa a dica do otimizador NO_MERGE em algumas junções externas esquerdas. Enquanto isso resulta em execução de consulta correta, o desempenho pode ser afetado adversamente. Se você obter uma atualização de software a partir do Oracle que soluciona esse problema, essa chave pode ser definida como True para desativar a solução alternativa NO_MERGE.

EnableUnistr

Boolean

False

A chave força o uso explícito da função UNISTR para representar os literais Unicode em consultas Oracle.

Geralmente, quando o local do banco de dados corresponde ao local das constantes da cadeia contidas na consulta, as constantes da cadeia Unicode podem ser geradas como sequências regulares na consulta. Ao usar constantes de literal que não existem na página de códigos definida por NLS_CharacterSet do banco de dados Oracle, a Oracle exige o uso da função UNISTR explícita para representar os literais Unicode. A definição dessa chave como True resulta em todas as constantes da cadeia Unicode em consultas a serem codificadas usando a função UNISTR Oracle.  

DisableTSTruncation

Truncation

Boolean

False

A chave desativa o truncamento explícito de frações de segundos em TIMESTAMP ao converter em DATE.

Devido ao comportamento de arrendondamento padrão da Oracle, que converte carimbo de data e hora como datas e uma vez que determinadas operações de data exigem datas em vez de carimbo de data e hora, a única maneira de garantir a precisão dessas operações é truncar explicitamente frações de segundos a partir dos tipos de dados de carimbo de data e hora antes de converter para data. Esse truncamento é aplicado a datas também uma vez que o tradutor de consulta Oracle não tem acesso a informações de tipo Oracle subjacentes para distinguir entre carimbo de data e hora e data. Isso tem um impacto de desempenho pequeno em muitas operações de data. Caso nenhum carimbo de data e hora seja usado no banco de dados de destino, essa chave pode ser definida como True, omitindo o truncamento desnecessário.

EnableMath

OpCasting

Boolean

False

A chave ativa a conversão de resultados de operações matemáticas em um formato decimal Microsoft .NET Framework.

Determinadas operações matemáticas em consultas podem resultar em valores decimais com uma combinação de precisão e escala que não podem ser representadas no tipo de dados decimal .NET Framework. Enquanto você pode converter explicitamente os resultados de tais expressões decimais como decimal, é improvável que seus usuários do Construtor de Relatórios saberão que isso é necessário no momento de design. Caso essas expressões sejam criadas com frequência, essa chave pode ser definida como True para executar automaticamente a conversão necessária.

Histórico de alterações

Conteúdo atualizado

O nome da chave de configuração que desativa o truncamento explícito de frações de segundos em TIMESTAMP ao converter em DATE foi atualizada. O nome correto da chave é DisableTSTruncation.