Partilhar via


Origem do OLE DB

Aplica-se a:SQL Server SSIS Integration Runtime em Azure Data Factory

A fonte OLE DB extrai dados de uma variedade de bancos de dados relacionais compatíveis com OLE DB usando uma tabela de banco de dados, uma exibição ou um comando SQL. Por exemplo, a fonte OLE DB pode extrair dados de tabelas em bancos de dados do Microsoft Office Access ou do SQL Server.

Observação

Se a fonte de dados for o Microsoft Office Excel 2007, a fonte de dados exigirá um gerenciador de conexões diferente das versões anteriores do Excel. Para obter mais informações, consulte Conectar-se a uma pasta de trabalho do Excel.

A fonte OLE DB fornece quatro modos diferentes de acesso a dados para extrair dados:

  • Uma tabela ou vista.

  • Uma tabela ou exibição especificada em uma variável.

  • Os resultados de uma instrução SQL. A consulta pode ser uma consulta parametrizada.

  • Os resultados de uma instrução SQL armazenada em uma variável.

Observação

Quando você usa uma instrução SQL para invocar um procedimento armazenado que retorna resultados de uma tabela temporária, use a opção WITH RESULT SETS para definir metadados para o conjunto de resultados.

Se você usar uma consulta parametrizada, poderá mapear variáveis para parâmetros para especificar os valores de parâmetros individuais nas instruções SQL.

Essa fonte usa um gerenciador de conexões OLE DB para se conectar a uma fonte de dados e o gerenciador de conexões especifica o provedor OLE DB a ser usado. Para obter mais informações, consulte Gerenciador de conexões OLE DB.

Um projeto do Integration Services também fornece o objeto de fonte de dados a partir do qual você pode criar um gerenciador de conexões OLE DB, disponibilizando fontes de dados e exibições de fonte de dados para a fonte OLE DB.

Dependendo do provedor OLE DB, algumas limitações se aplicam à origem do OLE DB:

  • O provedor Microsoft OLE DB para Oracle não oferece suporte aos tipos de dados Oracle BLOB, CLOB, NCLOB, BFILE ou UROWID e a fonte OLE DB não pode extrair dados de tabelas que contêm colunas com esses tipos de dados.

  • O provedor IBM OLE DB DB2 e o provedor Microsoft OLE DB DB2 não suportam o uso de um comando SQL que chama um procedimento armazenado. Quando esse tipo de comando é usado, a fonte OLE DB não pode criar os metadados da coluna e, como resultado, os componentes de fluxo de dados que seguem a fonte OLE DB no fluxo de dados não têm dados de coluna disponíveis e a execução do fluxo de dados falha.

A fonte OLE DB tem uma saída regular e uma saída de erro.

Usando instruções SQL parametrizadas

A fonte OLE DB pode usar uma instrução SQL para extrair dados. A instrução pode ser uma instrução SELECT ou EXEC.

A fonte OLE DB usa um gerenciador de conexões OLE DB para se conectar à fonte de dados da qual extrai dados. Dependendo do provedor que o gerenciador de conexões OLE DB usa e do RDBMS (Sistema de Gerenciamento de Banco de Dados Relacional) ao qual o gerenciador de conexões se conecta, regras diferentes se aplicam à nomenclatura e listagem de parâmetros. Se os nomes dos parâmetros forem retornados do RDBMS, você poderá usar nomes de parâmetros para mapear parâmetros em uma lista de parâmetros para parâmetros em uma instrução SQL; caso contrário, os parâmetros são mapeados para o parâmetro na instrução SQL por sua posição ordinal na lista de parâmetros. Os tipos de nomes de parâmetros suportados variam de acordo com o provedor. Por exemplo, alguns provedores exigem que você use os nomes de variáveis ou colunas, enquanto alguns provedores exigem que você use nomes simbólicos, como 0 ou Param0. Você deve ver a documentação específica do provedor para obter informações sobre os nomes de parâmetros a serem usados em instruções SQL.

Quando você estiver usando um gerenciador de conexões OLE DB, não poderá usar subconsultas parametrizadas, porque a fonte OLE DB não pode derivar informações de parâmetros por meio do provedor OLE DB. No entanto, você pode usar uma expressão para concatenar os valores de parâmetro na cadeia de caracteres de consulta e definir a propriedade SqlCommand da origem. No Designer SSIS, você configura uma fonte OLE DB usando a caixa de diálogo Editor de código-fonte OLE DB e mapeia os parâmetros para variáveis na caixa de diálogo Definir parâmetro de consulta .

Especificando parâmetros usando posições ordinais

Se nenhum nome de parâmetro for retornado, a ordem na qual os parâmetros são listados na lista Parâmetros na caixa de diálogo Definir parâmetro de consulta controla para qual marcador de parâmetro eles são mapeados em tempo de execução. O primeiro parâmetro na lista corresponde ao primeiro ? na instrução SQL, do segundo para o segundo ?, e assim por diante.

A instrução SQL a seguir seleciona linhas da tabela Product no AdventureWorks2025 banco de dados. O primeiro parâmetro na lista Mapeamentos corresponde ao primeiro parâmetro da coluna Cor, e o segundo parâmetro à coluna Tamanho.

SELECT * FROM Production.Product WHERE Color = ? AND Size = ?

Os nomes dos parâmetros não têm efeito. Por exemplo, se um parâmetro for nomeado da mesma forma que a coluna à qual se aplica, mas não for colocado na posição ordinal correta na lista Parâmetros , o mapeamento de parâmetros que ocorre em tempo de execução usará a posição ordinal do parâmetro, não o nome do parâmetro.

O comando EXEC normalmente requer que você use os nomes das variáveis que fornecem valores de parâmetro no procedimento como nomes de parâmetro.

Especificando parâmetros usando nomes

Se os nomes de parâmetros reais forem retornados do RDBMS, os parâmetros usados por uma instrução SELECT e EXEC serão mapeados pelo nome. Os nomes dos parâmetros devem corresponder aos nomes esperados pelo procedimento armazenado, executado pela instrução SELECT ou pela instrução EXEC.

A instrução SQL a seguir executa o procedimento armazenado uspGetWhereUsedProductID , disponível no AdventureWorks2025 banco de dados.

EXEC uspGetWhereUsedProductID ?, ?

O procedimento armazenado espera que as variáveis @StartProductID e @CheckDate, forneçam valores de parâmetro. A ordem em que os parâmetros aparecem na lista Mapeamentos é irrelevante. O único requisito é que os nomes dos parâmetros correspondam aos nomes das variáveis no procedimento armazenado, incluindo o sinal @.

Mapeando parâmetros para variáveis

Os parâmetros são mapeados para variáveis que fornecem os valores dos parâmetros em tempo de execução. As variáveis são normalmente variáveis definidas pelo usuário, embora você também possa usar as variáveis do sistema fornecidas pelo Integration Services. Se você usar variáveis definidas pelo usuário, certifique-se de definir o tipo de dados para um tipo compatível com o tipo de dados da coluna à qual o parâmetro mapeado faz referência. Para obter mais informações, consulte Variáveis dos Serviços de Integração (SSIS).

Solução de problemas da origem do OLE DB

Você pode registrar as chamadas que a fonte OLE DB faz para provedores de dados externos. Você pode usar esse recurso de log para solucionar problemas de carregamento de dados de fontes de dados externas que a fonte OLE DB executa. Para registrar as chamadas que a fonte OLE DB faz para provedores de dados externos, habilite o log de pacotes e selecione o evento de diagnóstico no nível do pacote. Para obter mais informações, consulte Ferramentas de solução de problemas para execução de pacotes.

Configurando a origem do OLE DB

Você pode definir propriedades programaticamente ou por meio do SSIS Designer.

A caixa de diálogo Advanced Editor reflete as propriedades que podem ser definidas programaticamente. Para obter mais informações sobre as propriedades que você pode definir na caixa de diálogo Advanced Editor ou programaticamente, clique em um dos seguintes tópicos:

SSIS utilizando os conectores Oracle

Editor de código-fonte OLE DB (página Gerenciador de Conexões)

Use a página Gerenciador de conexões da caixa de diálogo Editor de código-fonte OLE DB para selecionar o gerenciador de conexões OLE DB para a origem. Esta página também permite selecionar uma tabela ou exibição do banco de dados.

Observação

Para carregar dados de uma fonte de dados que usa o Microsoft Office Excel 2007, use uma fonte OLE DB. Não é possível usar uma fonte do Excel para carregar dados de uma fonte de dados do Excel 2007. Para obter mais informações, consulte Configurar o Gerenciador de Conexões OLE DB.

Para carregar dados de uma fonte de dados que usa o Microsoft Office Excel 2003 ou anterior, use uma fonte do Excel. Para obter mais informações, consulte Editor de código-fonte do Excel (página Gerenciador de conexões).

Observação

A propriedade CommandTimeout da fonte OLE DB não está disponível no Editor de código-fonte OLE DB, mas pode ser definida usando o Editor Avançado. Para obter mais informações sobre essa propriedade, consulte a seção Origem do Excel das Propriedades personalizadas do OLE DB.

Abra o Editor de código-fonte OLE DB (página Gerenciador de Conexões)

  1. Adicione a fonte OLE DB ao pacote Integration Services, no SSDT (SQL Server Data Tools).

  2. Clique com o botão direito do mouse no componente de origem e clique em Editar.

  3. Clique em Gerenciador de conexões.

Opções estáticas

Gerenciador de conexões OLE DB
Selecione um gerenciador de conexões existente na lista ou crie uma nova conexão clicando em Novo.

Novo
Crie um novo gerenciador de conexões usando a caixa de diálogo Configurar Gerenciador de Conexões OLE DB .

Modo de acesso aos dados
Especifique o método para selecionar dados da fonte.

Opção Descrição
Tabela ou vista Recupere dados de uma tabela ou vista na fonte de dados OLE DB.
Nome da tabela ou variável de nome de exibição Especifique o nome da tabela ou exibição em uma variável.

Informações relacionadas:Usar variáveis em pacotes
Comando SQL Recupere dados da fonte de dados OLE DB usando uma consulta SQL.
Comando SQL da variável Especifique o texto da consulta SQL em uma variável.

Previsualizar
Visualize os resultados usando a caixa de diálogo Modo de Exibição de Dados . A pré-visualização pode apresentar até 200 linhas.

Observação

Quando você visualiza dados, as colunas com um tipo CLR definido pelo usuário não contêm dados. Em vez disso, os valores <são demasiado grandes para serem exibidos> ou são exibidos como System.Byte[]. O primeiro é exibido quando a fonte de dados é acessada usando o provedor SQL OLE DB, o segundo quando usa o provedor SQL Server Native Client.

Opções dinâmicas do modo de acesso a dados

Modo de acesso a dados = Tabela ou vista

Nome da tabela ou da vista
Selecione o nome da tabela ou exibição em uma lista das disponíveis na fonte de dados.

Modo de acesso a dados = Nome da tabela ou variável de nome de exibição

Nome da variável
Selecione a variável que contém o nome da tabela ou exibição.

Modo de acesso a dados = comando SQL

Texto do comando SQL
Insira o texto de uma consulta SQL, crie a consulta clicando em Criar Consulta ou localize o arquivo que contém o texto da consulta clicando em Procurar.

Parâmetros
Se você inseriu uma consulta parametrizada usando ? como um espaço reservado para parâmetros no texto da consulta, use a caixa de diálogo Definir parâmetros de consulta para mapear parâmetros de entrada de consulta para variáveis de pacote.

Construir consulta
Use a caixa de diálogo Construtor de Consultas para construir a consulta SQL visualmente.

Navegar
Use a caixa de diálogo Abrir para localizar o arquivo que contém o texto da consulta SQL.

Analisar consulta
Verifique a sintaxe do texto da consulta.

Modo de acesso a dados = comando SQL da variável

Nome da variável
Selecione a variável que contém o texto da consulta SQL.

Editor de Fonte OLE DB (Página de Colunas)

Use a página Colunas da caixa de diálogo Editor de código-fonte OLE DB para mapear uma coluna de saída para cada coluna externa (origem).

Opções

Colunas externas disponíveis
Exiba a lista de colunas externas disponíveis na fonte de dados. Não é possível usar esta tabela para adicionar ou excluir colunas.

Coluna Externa
Exiba colunas externas (fonte) na ordem em que você as verá ao configurar componentes que consomem dados dessa fonte. Você pode alterar essa ordem limpando primeiro as colunas selecionadas na tabela e, em seguida, selecionando colunas externas da lista em uma ordem diferente.

Coluna de saída
Forneça um nome exclusivo para cada coluna de saída. O padrão é o nome da coluna externa (fonte) selecionada; no entanto, você pode escolher qualquer nome exclusivo e descritivo. O nome fornecido será exibido no Designer SSIS.

Editor de código-fonte OLE DB (página de saída de erro)

Use a página Saída de erro da caixa de diálogo Editor de código-fonte OLE DB para selecionar opções de tratamento de erros e definir propriedades em colunas de saída de erro.

Opções

de entrada/saída
Exiba o nome da fonte de dados.

Coluna
Exiba as colunas externas (origem) selecionadas na página Gerenciador de Conexões da caixa de diálogo Editor de código-fonte OLE DB .

Erro
Especifique o que deve acontecer quando ocorrer um erro: ignore a falha, redirecione a linha ou falhe o componente.

Tópicos relacionados:Tratamento de erros em dados

Truncamento
Especifique o que deve acontecer quando ocorrer um truncamento: ignorar a falha, redirecionar a linha ou provocar a falha do componente.

Descrição
Veja a descrição do erro.

Defina esse valor para células selecionadas
Especifique o que deve acontecer com todas as células selecionadas quando ocorrer um erro ou truncamento: ignore a falha, redirecione a linha ou falhe o componente.

Candidatar-se
Aplique a opção de tratamento de erros às células selecionadas.

Ver também

Destino OLE DB
Variáveis do Integration Services (SSIS)
Fluxo de Dados