Gravando o Código do Procedimento para Bloquear Dados
Gravando o Código do Procedimento para Bloquear Dados
Você pode gravar o procedimento para bloquear e desbloquear dados de entrada. Para bloquear dados de entrada, utilize a função INFA_CTBlockInputFlow(). Para desbloquear dados de entrada, use a função INFA_CTUnblockInputFlow().
Talvez você queira bloquear dados de entrada se o procedimento externo precisar alternar a leitura de grupos de entrada. Sem a funcionalidade de bloqueio, você precisaria gravar o código do procedimento para armazenar dados de entrada no buffer. Você pode bloquear dados de entrada, em vez de armazená-los no buffer, o que normalmente melhora o desempenho da sessão.
Por exemplo, você precisa criar um procedimento externo com dois grupos de entrada. O procedimento externo lê uma linha do primeiro grupo de entrada e, em seguida, lê uma linha do segundo grupo de entrada. Se você usar o bloqueio, poderá gravar o código do procedimento externo para bloquear o fluxo de dados de um grupo de entrada enquanto processa os dados do outro grupo de entrada. Ao gravar o código do procedimento externo para bloquear dados, você melhora o desempenho porque o procedimento não precisa copiar os dados de origem em um buffer. No entanto, você poderia gravar o procedimento externo para alocar um buffer e copiar os dados de um grupo de entrada no buffer até ele estar pronto para processar os dados. A cópia de dados de origem em um buffer prejudica o desempenho.