Origem de OLE DB
A origem de 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 origem de OLE DB pode extrair dados de tabelas em Microsoft Office Access ou bancos de dados do SQL Server.
Observação |
---|
Se a fonte de dados for Microsoft Office Excel 2007, ela exigirá um gerenciador de conexões diferente de versões anteriores do Excel. Para obter mais informações, consulte Conectar-se a uma pasta de trabalho do Excel. |
A origem de OLE DB fornece quatro modos de acesso a dados diferentes para extrair dados:
Uma tabela ou exibição.
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 armazenados 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 de 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 origem 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 do qual você pode criar um gerenciador de conexões OLE DB, disponibilizando as fontes de dados para a origem de OLE DB.
Dependendo do provedor OLE DB, algumas limitações se aplicam à origem de OLE DB:
O provedor Microsoft OLE DB para Oracle não dá suporte aos tipos de dados BLOB, CLOB, NCLOB, BFILE ou UROWID e a origem de OLE DB não pode extrair dados de tabelas que contenham colunas com esses tipos de dados.
Os provedores IBM OLE DB DB2 e Microsoft OLE DB DB2 não dão suporte ao uso de um comando SQL que chame um procedimento armazenado. Quando esse tipo de comando é usado, a origem de OLE DB não pode criar os metadados de coluna e, como resultado, os componentes do fluxo de dados que seguem a origem de OLE DB no fluxo de dados não possuem dados de coluna disponíveis e a execução do fluxo de dados falha.
A origem de OLE DB tem uma saída regular e uma saída de erro.
Usando instruções SQL parametrizadas
A origem de OLE DB pode usar uma instrução SQL para extrair dados. A instrução pode ser uma instrução SELECT ou EXEC.
A origem de OLE DB usa um gerenciador de conexões OLE DB para se conectar à fonte de dados da qual ela extrai dados. Dependendo do provedor que o gerenciador de conexões OLE DB usa e do RDBMS ao qual o gerenciador de conexões se conecta, diferentes regras se aplicam à nomenclatura e listagem de parâmetros. Se os nomes de parâmetros forem retornados do RDBMS, você poderá usá-los para mapear parâmetros em uma lista de parâmetros em uma instrução SQL; caso contrário, os parâmetros serão mapeados para o parâmetro na instrução SQL por suas posições na lista. Os tipos de nomes de parâmetros que têm suporte variam de acordo com o provedor. Por exemplo, alguns provedores exigem que você use os nomes de variáveis ou colunas, enquanto que outros exigem o uso de nomes simbólicos como 0 ou Param0. Você deve consultar a documentação específica do provedor para obter informações sobre os nomes dos parâmetros a serem usados nas instruções SQL.
Quando você usa um gerenciador de conexões OLE DB, não pode usar subconsultas parametrizadas, pois a origem de OLE DB não pode derivar informações de parâmetros através do provedor OLE DB. No entanto, você pode usar uma expressão para concatenar os valores de parâmetros na cadeia de consulta e definir a propriedade SqlCommand da origem. No Designer SSIS, você configura uma origem de OLE DB usando a caixa de diálogo Editor de Origem de 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 serão listados na lista Parâmetros na caixa de diálogo Definir Parâmetro de Consulta controlará à qual marcador de parâmetro eles estarão mapeados em tempo de execução. O primeiro parâmetro na lista é mapeado para o primeiro ? da instrução SQL, o segundo para o segundo ? e assim por diante.
A seguinte instrução SQL seleciona linhas da tabela Produto no banco de dados AdventureWorks2012 . O primeiro parâmetro na lista Mapeamentos é mapeado para o primeiro parâmetro na coluna Cor, o segundo parâmetro para a coluna Tamanho.
SELECT * FROM Production.Product WHERE Color = ? AND Size = ?
Os nomes de parâmetros não têm nenhum efeito. Por exemplo, se um parâmetro tiver o mesmo nome da coluna na qual ele se aplica, mas não estiver na posição ordinal correta na lista Parâmetros, o mapeamento de parâmetro que ocorre em tempo de execução usará a posição ordinal do parâmetro, não seu nome.
O comando EXEC geralmente exige que você use os nomes das variáveis que fornecem valores de parâmetros no procedimento como nomes de parâmetros.
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 por nome. Os nomes de parâmetros devem corresponder aos nomes que o procedimento armazenado, executado pela instrução SELEC ou EXEC, espera.
A seguinte instrução SQL executa o procedimento armazenado uspGetWhereUsedProductID, disponível no banco de dados AdventureWorks2012 .
EXEC uspGetWhereUsedProductID ?, ?
O procedimento armazenado espera as variáveis, @StartProductID e @CheckDate, para fornecer os valores de parâmetros. A ordem na qual os parâmetros aparecem na lista Mapeamentos é irrelevante. O único requisito é que os nomes de parâmetros correspondam aos nomes de 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 de parâmetros em tempo de execução. As variáveis geralmente são definidas pelo usuário, embora você também possa usar as variáveis de sistema que o Integration Services fornece. Se você usar variáveis definidas pelo usuário, defina o tipo de dados que seja 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 do SSIS (Integration Services).
Solucionando problemas da origem de OLE.DB
Você pode registrar as chamadas que a origem de OLE DB faz para provedores de dados externos. Você pode usar essa capacidade de registro para solucionar problemas de carregamento de dados de fontes de dados externas que a origem de OLE DB executa. Para registrar as chamadas que a origem de OLE DB faz aos provedores de dados externos, habilite o registro de pacotes e selecione o evento Diagnóstico no nível de pacotes. Para obter mais informações, consulte Solucionando problemas de ferramentas para execução de pacotes.
Configurando a origem de OLE DB
Você pode definir propriedades programaticamente ou por meio do Designer SSIS.
Para obter mais informações sobre as propriedades que podem ser definidas na caixa de diálogo Editor de Origem de OLE DB, clique em um dos seguintes tópicos:
A caixa de diálogo Editor Avançado reflete as propriedades que podem ser definidas programaticamente. Para obter mais informações sobre as propriedades que podem ser definidas na caixa de diálogo Editor Avançado ou programaticamente, clique em um dos seguintes tópicos:
Tarefas relacionadas
Mapear parâmetros de consulta para variáveis em um componente de fluxo de dados
Classificar dados para as transformações Mesclagem e Junção de Mesclagem
Conteúdo relacionado
Artigo do Wiki, SSIS with Oracle Connectors em social.technet.microsoft.com.
|