Partilhar via


Transformação de Comando OLE DB

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

A transformação de comandos OLE DB executa uma instrução SQL para cada linha num fluxo de dados. Por exemplo, pode executar uma instrução SQL que insere, atualiza ou elimina linhas numa tabela de base de dados.

Pode configurar a Transformação de Comandos OLE DB das seguintes formas:

  • Forneça a instrução SQL que a transformação executa para cada linha.

  • Especifique o número de segundos antes de a instrução SQL expirar.

  • Especifique a página de códigos predefinida.

Normalmente, a instrução SQL inclui parâmetros. Os valores dos parâmetros são armazenados em colunas externas na entrada da transformação, e mapear uma coluna de entrada para uma coluna externa mapeia uma coluna de entrada para um parâmetro. Por exemplo, para localizar linhas na tabela DimProduct pelo valor na sua coluna ProductKey e depois eliminá-las, podes mapear a coluna externa chamada Param_0 para a coluna de entrada chamada ProductKey, e depois executar a instrução DELETE FROM DimProduct WHERE ProductKey = ?SQL .. A transformação do Comando OLE DB fornece os nomes dos parâmetros e não pode modificá-los. Os nomes dos parâmetros são Param_0, Param_1, e assim sucessivamente.

Se configurar a transformação do Comando OLE DB usando a caixa de diálogo Editor Avançado, os parâmetros na instrução SQL podem ser mapeados automaticamente para colunas externas na entrada da transformação, e as características de cada parâmetro podem ser definidas clicando no botão Atualizar. No entanto, se o fornecedor OLE DB utilizado pela transformação de comandos OLE DB não suportar a derivação de informação de parâmetros a partir do parâmetro, deve configurar manualmente as colunas externas. Isto significa que deve adicionar uma coluna para cada parâmetro à entrada externa da transformação, atualizar os nomes das colunas para usar nomes como Param_0, especificar o valor da propriedade DBParamInfoFlags e mapear as colunas de entrada que contêm valores de parâmetros para as colunas externas.

O valor de DBParamInfoFlags representa as características do parâmetro. Por exemplo, o valor 1 especifica que o parâmetro é um parâmetro de entrada, e o valor 65 especifica que o parâmetro é um parâmetro de entrada e pode conter um valor nulo. Os valores devem corresponder aos valores da enumeração OLE DB DBPARAMFLAGSENUM. Para mais informações, consulte a documentação de referência do OLE DB.

A transformação de comandos OLE DB inclui a propriedade personalizada SQLCommand . Essa propriedade pode ser atualizada por uma expressão de propriedade quando o pacote é carregado. Para mais informações, consulte Expressões de Serviços de Integração (SSIS), Expressões de Propriedades de Utilização em Pacotes e Propriedades Personalizadas de Transformação.

Esta transformação tem uma entrada, uma saída regular e uma saída de erro.

Exploração Florestal

Pode registar as chamadas que a transformação do OLE DB Command faz a fornecedores de dados externos. Pode usar esta capacidade de registo para diagnosticar as ligações e comandos para fontes de dados externas que a transformação de comandos OLE DB realiza. Para registar as chamadas que a transformação do Comando OLE DB faz a fornecedores de dados externos, ative o registo de pacotes e selecione o evento de Diagnóstico ao nível do pacote. Para obter mais informações, consulte Ferramentas de solução de problemas para execução de pacotes.

Pode configurar a transformação usando o SSIS Designer ou o modelo de objetos. Consulte o Guia do Desenvolvedor para detalhes sobre como configurar programaticamente esta transformação.

Configurar a Transformação de Comando OLE DB

Para adicionar e configurar uma transformação de Comando OLE DB, o pacote deve já incluir pelo menos uma tarefa de Fluxo de Dados e uma fonte como uma fonte de ficheiro plano ou uma fonte OLE DB. Esta transformação é tipicamente usada para executar consultas parametrizadas.

Para configurar a transformação de comandos OLE DB

  1. No SSDT (SQL Server Data Tools), abra o projeto Integration Services que contém o pacote desejado.

  2. No Gerenciador de Soluções, clique duas vezes no pacote para abri-lo.

  3. Clique no separador Data Flow e, depois, a partir da Caixa de Ferramentas, arraste a transformação OLE DB Command para a superfície de design.

  4. Ligue a transformação do Comando OLE DB ao fluxo de dados arrastando um conector — a seta verde ou vermelha — de uma fonte de dados ou de uma transformação anterior para a transformação do Comando OLE DB.

  5. Clique com o botão direito no componente e selecione Editar ou Mostrar Editor Avançado.

  6. No separador Gerentes de Ligações , selecione um gestor de conexões OLE DB na lista Gestor de Conexões . Para obter mais informações, consulte Gerenciador de conexões OLE DB.

  7. Clique no separador Propriedades do Componente e clique no botão de elipse (...) na caixa SqlCommand .

  8. No Editor de Valores de String, escreva a instrução SQL parametrizada usando um ponto de interrogação (?) como marcador de parâmetro para cada parâmetro.

  9. Clica em Atualizar. Quando clicas em Atualizar, a transformação cria uma coluna para cada parâmetro na coleção de Colunas Externas e define a propriedade DBParamInfoFlags.

  10. Clique no separador Propriedades de Entrada e Saída .

  11. Expandir a entrada de comandos do OLE DB e depois expandir as colunas externas.

  12. Verifique se o External Columns lista uma coluna para cada parâmetro na instrução SQL. Os nomes das colunas são Param_0, Param_1, e assim sucessivamente.

    Não deves mudar os nomes das colunas. Se alterar os nomes das colunas, os Serviços de Integração geram um erro de validação para a transformação do Comando OLE DB.

    Além disso, não deve alterar o tipo de dados. A propriedade DataType de cada coluna está definida para o tipo de dado correto.

  13. Se as Colunas Externas não listam colunas, deve adicioná-las manualmente.

    • Clique em Adicionar Coluna uma vez para cada parâmetro na instrução SQL.

    • Atualize os nomes das colunas para Param_0, Param_1, e assim sucessivamente.

    • Especifique um valor na propriedade DBParamInfoFlags. O valor deve corresponder a um valor na enumeração OLE DB DBPARAMFLAGSENUM. Para mais informações, consulte a documentação de referência do OLE DB.

    • Especifique o tipo de dados da coluna e, dependendo do tipo de dado, especifique a página de códigos, o comprimento, a precisão e a escala da coluna.

    • Para eliminar um parâmetro não utilizado, selecione o parâmetro em Colunas Externas e depois clique em Remover Coluna.

    • Clique em Mapeamentos de Colunas e mapeie as colunas na lista de Colunas de Entrada Disponíveis para os parâmetros na lista de Colunas de Destino Disponíveis.

  14. Clique em OK.

  15. Para guardar o pacote atualizado, clique em Guardar no menu Ficheiro .

Ver também

Fluxo de Dados
Transformações do Integration Services