Cuando un procedimiento almacenado tiene por ejemplo 5 variables de entrada y 2 de salida (por dar un ejemplo) declaradas en ORACLE, ¿necesito llenar las 5 de entrada obligatoriamente?
Estoy ocupando oci8.
Código PHP:
$sql = ' BEGIN ';
$sql .= ' mipackage.miprocedimientoalmacenado ( ';
$sql .= ' :var1_in,';
$sql .= ' :var2_in,';
$sql .= ' :var3_in,';
$sql .= ' :var4_in,';
$sql .= ' :var5_in,';
$sql .= ' :vardesalida1, ';
$sql .= ' :vardesalida2, ';
$sql .= ' :vardesalida3 ';
$sql .= ' );';
$sql .= ' END;';
$stmt = oci_parse($conn, $sql) or die("Error: Package 1");
// llenando parametros de entrada
oci_bind_by_name($stmt,':var1_in',$var1_in,-1);
oci_bind_by_name($stmt,':var2_in',$var2_in,-1);
oci_bind_by_name($stmt,':var3_in',$var3_in,-1);
oci_bind_by_name($stmt,':var4_in',$var4_in,-1);
oci_bind_by_name($stmt,':var5_in',$var5_in,-1);
//llenando los parametros de salida
oci_bind_by_name($stmt,':p_id_solicitud',$vardesalida1,-1);
oci_bind_by_name($stmt,':p_id_solicitud',$vardesalida2,-1);
oci_bind_by_name($stmt,':p_id_solicitud',$vardesalida3,-1);
//llena las variables
$var1_in = 123;
$var2_in = 12345;
$var3_in = 23424;
$var4_in = 34234;
$var5_in = 'asdsad';
oci_execute($stmt);
print "$vardesalida2\n";