Por último, temos os parâmetros que são de entrada e saída ao mesmo tempo.
Exemplo: Suponha que um procedimento receba uma string de texto como parâmetro e altere essa string para letras com as iniciais em maiúsculas e as demais letras em minúsculas. Poderíamos tanto criar um procedimento com dois parâmetros, um para entrada e outro para saída, ou apenas um parâmetro que seria alterado pelo procedimento e posteriormente utilizado por quem chamou o procedimento.
Nesse caso, poderia ser especificado como:
(INOUT TextoASerConvertido Varchar (1000)).