Usando o
foreach
abordagem de minha resposta
para outra de suas perguntas não é uma boa ideia ao lidar com procedimentos armazenados. Embora funcione (como mostrado em sua pergunta, as variáveis são definidas no
$params
array após a execução) o maior problema é que você deve fornecer o quarto parâmetro (maxlength
) para oci_bind_by_name
. Você usou um valor estático de 32
em seu código, mas um erro é gerado quando o comprimento de um valor excede isso. Ele não pode ser calculado em tempo de execução e configurá-lo para um valor muito grande é ineficiente (talvez isso não seja um problema para seu aplicativo). Como você está executando um procedimento armazenado conhecido, você deve conhecer o
maxlength
de valores de saída em tempo de design e estes podem ser inseridos estaticamente colocando todos os oci_*
funções em getHours()
, em vez de tentar abstrair todas as chamadas para customExecute()
.