Arregle lo que decias:
Código PHP:
$sql="BEGIN pk_carvig_user.p_validauser('".$idf_usuario."'"
.",:po_sw, :po_texterr, :po_existe); END;";
$stmt = OCIParse($conexion->conecta,$sql);
OCIBindByName($stmt,":po_texterr",&$po_texterr,256);
OCIBindByName($stmt,":po_sw",&$po_sw,256);
OCIBindByName($stmt,":po_existe",$po_existe,256);
ociexecute($stmt);
ociexecute($po_existe);
if($po_existe == '1'){
echo "esta duplicado";
}
Código SQL:
Ver originalPROCEDURE P_VALIDAUSER ( PO_EXISTE OUT NUMBER,
PI_USRSYS_ALIAS IN VARCHAR2,
PO_SW OUT NUMBER,
PO_TEXTERR OUT VARCHAR2)IS
vl_valor NUMBER;
BEGIN
BEGIN
--OPEN PO_VALIDAUSER FOR
-- VALIDA ID Usuarios del sistema
SELECT COUNT(1)
INTO vl_valor
FROM TCARVIG_USRSYS
WHERE USRSYS_ID = PI_USRSYS_ALIAS;
IF vl_valor > 0 THEN --el registro existe
PO_EXISTE:= 1;
END IF;
END;
END;
Ahora me da el siguiente error
Cita: Warning: ociexecute() [function.ociexecute]: ORA-06550: línea 1, columna 22: PLS-00302: el componente 'P_VALIDAUSER' se debe declarar ORA-06550: línea 1, columna 7: PL/SQL: Statement ignored in C:\AppServ\www\registro\registro.php on line 226
Warning: ociexecute() expects parameter 1 to be resource, null given in C:\AppServ\www\registro\registro.php on line 227