Foros del Web » Programando para Internet » PHP »

Ayuda: PHP y ORACLE PL-SQL

Estas en el tema de Ayuda: PHP y ORACLE PL-SQL en el foro de PHP en Foros del Web. Saludos a todos. Se me està presentando el siguiente inonveniente al llamar al archivo PHP que a continuciòn les adjunto. Estoy tratando de llamar a ...
  #1 (permalink)  
Antiguo 13/05/2008, 10:36
 
Fecha de Ingreso: agosto-2007
Mensajes: 12
Antigüedad: 17 años, 3 meses
Puntos: 0
Ayuda: PHP y ORACLE PL-SQL

Saludos a todos.

Se me està presentando el siguiente inonveniente al llamar al archivo PHP que a continuciòn les adjunto. Estoy tratando de llamar a un procedimiento almacenado PL-SQL. y obtengo el siguiente error en el log de apache:

PHP Warning: ociexecute() [<a href='function.ociexecute'>function.ociexecute</a>]: ORA-06550: línea 1, columna 7:
PLS-00306: número o tipos de argumentos erróneos al llamar a 'QUERY$CURSOR'
ORA-06550: línea 1, columna 7:
PL/SQL: Statement ignored in C:\Archivos de programa\Zend\Apache2\htdocs\pruebaArrays.php on line 20


LE AGRADECERIA ENORMEMENTE A QUIEN PUDIERA AYUDARME A RESOLVER MI SITUACION


---------------------------- PHP CODE ----------------------------------------
<?
try
{
$conn = oci_connect("carlos","tesis","XE");
$sql="BEGIN PACK\$PERSONA.QUERY\$CURSOR(:c,:o,:v,:cursor); END;";

echo($sql);
$c = array('ID');
$o = array('=');
$v = array('1');

$sqlParsed = OCIParse($conn,$sql);

oci_bind_array_by_name($sqlParsed, "c", $c,1, -1, SQLT_CHR);
oci_bind_array_by_name($sqlParsed, "o", $o,1, -1, SQLT_CHR);
oci_bind_array_by_name($sqlParsed, "v", $v,1, -1, SQLT_CHR);

$cursor = ocinewcursor($conn);
ocibindbyname($sqlParsed,'cursor', $cursor, -1, OCI_B_CURSOR);
$s=OCIExecute($sqlParsed) or die("No se pudo ejecutar );
ociexecute($cursor);
//echo("qury ".$query);
while (OCIFetch($cursor))
{
for($i=0;$i<14;$i++){
echo(OCIResult($cursor,$i)."<br>");
}
}

OCILogOff($conn);
}catch(Exception $e)
{
echo("Ocurri un error en query.php->queryCursor ");
}
?>

------------------------ FIN PHP CODE ----------------------------------------

------------------------- PROCEDIMIENTO PL AL QUE ESTOY LLAMANDO el cual se encuentra en el paquete PACK\$PERSONA ----------

type rtyWCondition is record(vchColumn varchar2(30),
vchOperator varchar2(6),
vchValue varchar2(200));
type gttyWCondition is table of rtyWCondition index by binary_integer;

procedure Query$Cursor(
parTblCondicion in gttyWCondition,
parCursor out typCursor)
is
vchQuery varchar2(1024);
vchColumns varchar2(512);
begin
vchQuery := 'select * '
|| ' from CORE$PERSONA '
|| construirCondicion(parTblCondicion);
open parCursor FOR vchQuery;
return;

end Query$Cursor;
  #2 (permalink)  
Antiguo 13/05/2008, 11:08
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Re: Ayuda: PHP y ORACLE PL-SQL

Hola carvega86,

El error no es en si de PHP, ya que si ves el mensaje que te indica Oracle, los argumentos que le estás pasando a tu procedimiento son incorrectos, viendo tu procedimiento almacenado puedo ver tus 3 parámetros son de tipo texto, así que revisa bien si en tu binding de variables todas son del tipo de string.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:42.