Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/05/2008, 10:41
carvega86
 
Fecha de Ingreso: agosto-2007
Mensajes: 12
Antigüedad: 17 años, 3 meses
Puntos: 0
Ayuda 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;