Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > Oracle

Respuesta
 
Herramientas Desplegado
Antiguo 13-may-2008, 10:41   #1 (permalink)
carvega86 ha deshabilitado el karma
 
Fecha de Ingreso: agosto-2007
Mensajes: 12
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;
carvega86 está desconectado   Responder Citando
Antiguo 13-may-2008, 15:13   #2 (permalink)
kikolice ha deshabilitado el karma
 
Avatar de kikolice
 
Fecha de Ingreso: marzo-2004
Mensajes: 984
Re: Ayuda ORACLE PL SQL

no conosco muy bien php pero creo que

PLS-00306: número o tipos de argumentos erróneos al llamar a 'QUERY$CURSOR'

veo una llamada con 4 parametros

$sql="BEGIN PACK\$PERSONA.QUERY\$CURSOR(:c,:o,:v,:cursor); END;";

veo un procedure con 2 parametros

procedure Query$Cursor(
parTblCondicion in gttyWCondition,
parCursor out typCursor)
is
__________________
Blogzote.com :-) Mi blog
kikolice está desconectado   Responder Citando
Antiguo 14-may-2008, 00:57   #3 (permalink)
jc3000 ha deshabilitado el karma
 
Fecha de Ingreso: junio-2007
Mensajes: 258
Re: Ayuda ORACLE PL SQL

La gente debería fijarse primero en el ORA-XXXXX que sale, interpretarlo y obrar en consecuencia.

Aquí no tiene nada que ver el PHP ni ná de ná. Como bien dice kikolice tienes un procedure que recibe 4 parametros y le mandas 2...
jc3000 está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 15:15.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93