Quandotratamos sobre o step Table Input, vimos como inserir dados no fluxoprovenientes do banco de dados. Tambem abordamos outras possiveis formas de utilizacao deste step durante o fluxo, ao inves de utiliza-loapenas para dar inicio ao processo.Independenteda posicao em que este step encontra-se no fluxo de dados, sabemos que seucomportamento e o de inserir dados no fluxo, ou seja, independente do scriptque e executado nele, seu final deve conter uma clausula SELECT, a fim de queos dados sejam extraidos do banco de dados direto para o fluxo que se inicia(ou continua).Porexemplo, caso utilizemos este step apenas para executar um comando DELETE ouINSERT, o Kettle gerara um erro e interrompera a execucao. Isto aconteceporque uma insercao de dados no fluxo sempre sera esperada. O quee possivel fazer como alternativa, em casos especificos, e executarmos umcomando DELETE ou INSERT sucedido por um SELECT.Considerandoqualquer uma destas hipoteses, ainda podemos considerar que ha uma forma maisinteressante e correta de executarmos apenas comandos SQL que naonecessariamente venham selecionar dados e inseri-los ao fluxo. Paraisso, existe o "Execute SQL Script", disponivel na guia"Scripting".Comeste step, sera possivel executar um ou mais comandos SQL, assim como capturara quantidade de registros afetados por cada comando. Deacordo com a imagem acima, podemos ver diversas opcoes semelhantes aquelasdisponiveis em outros steps.O printdestaca tres propriedades do step em questao. A primeira, indicaque podemos definir se o script sera executado uma unica vez, ou sera executadoem cada linha que passar por este step.Asegunda define possiveis campos que podem ser utilizados como argumentos nomeio do codigo, representados pelo ponto de interrogacao (?). A terceira mostracomo definir e dar nomes aos campos que retornarao a quantidade de registrosafetados por cada comando (SELECT, INSERT, UPDATE e DELETE) no script.Afigura abaixo mostra um exemplo comum de utilizacao do "Execute SQLScript". Este step, por nao produzir uma saida de dados (apenasexecuta um script), nao deve ser colocado no inicio do fluxo. Ofato de colocarmos um SELECT no script nao significa que os campos do selectserao inseridos no fluxo. Reforcamos que este step nao possui estecomportamento.Quantoao uso de stored procedures, podemos utiliza-la em qualquer step que permita aconstrucao de uma query, mas da mesma maneira que possuimos steps especificos e maisrecomendados para extracao de dados do BD para o fluxo (Table Input) e steps parasimples execucao de scripts (Execute SQL Scripts), tambem temos um stepespecifico para isso.Estestep e o "Call DB Procedure".Este step tambem pode ser inserido em qualquer ponto do fluxo, porem nao recomendo que seja no inicio. Observe que e muito simples configurar o step para a execucao da procedure, principalmente para quem ja desenvolveu ou executou uma anteriormente.O usuario devera definir pelo menos a conexao, o nome da procedure, alem dos parametros da mesma, caso seja necessario.Alem disso, caso esta procedure retorne algum resultado, semelhante a uma FUNCTION no SQL, voce podera definir o nome do campo que contera este resultado, assim como seu tipo.Da mesma forma, caso queira executar uma stored procedure que retorne diversas linhas e colunas como resultado, ou seja, quando o codigo da procedure termina com um SELECT, e voce entenda que e importante