Oracle - URGENTE POR FAVOR

   
Vista:

URGENTE POR FAVOR

Publicado por Pablo (2 intervenciones) el 17/01/2008 11:20:40
en el sigiente codigo el valor de filas siempre es mayor que cero y siempre vale lo mismo, cuando deberia cambiar en funcion de codigo, que cambia en funcion del cursor. Os paso parte del codigo implicado, me estoy volviendo loco tratando de saber que pasa.
Un dato interesante, filas siempre vale 1515 y el numero de registros de la tabla TORGANISMOS es 1520 teniendo 5 registros el campo CODIGO=null.

set serveroutput on;
declare
idOrganismo number;
idTipoOrganismo number;
sIdPais char(6);
idPais number;
idDependiente number;
nombre varchar2(200);
direccion varchar2(200);
cp varchar(20);
poblacion varchar2(200);
idProvincia number;
idComunidad number;
cif varchar2(20);
web varchar2(200);
codigo varchar2(10);
idPaisAmbito number;

idCategoria number;
contacto varchar2(200);
telefono varchar2(30);
fax varchar2(30);
email varchar2(200);

idOficina number;
sCodigoOficina varchar2(10);

idContador number;
idContador2 number;
filas number;

cursor cCorresponsales is
select trim(OFENEW.M_CORRESPON.NOMBRE),
trim(OFENEW.M_CORRESPON.DOMICI),
trim(OFENEW.M_CORRESPON.POBLAC),
TRIM(OFENEW.M_CORRESPON.COPOST),
trim(OFENEW.M_CORRESPON.NIF),
trim(OFENEW.M_CORRESPON.WWW),
trim(OFENEW.M_CORRESPON.CODIGO),
trim(OFENEW.M_CORRESPON.TELEFO),
trim(OFENEW.M_CORRESPON.CONTACTO),
trim(OFENEW.M_CORRESPON.FAX),
trim(OFENEW.M_CORRESPON.INTERNET),
trim(OFENEW.M_CORRESPON.COPAIS)
from OFENEW.M_CORRESPON where TRIM(OFENEW.M_CORRESPON.FEBAJA) IS NULL;

begin
open cCorresponsales;
loop
fetch cCorresponsales into
nombre,
direccion,
poblacion,
cp,
cif,
web,
codigo,
telefono,
contacto,
fax,
email,
sIdPais;
exit when cCorresponsales%notfound;

select max(contador)+1 into idContador from SEFRON.TCONTADORES where stabla='TORGANISMOS';

if trim(sIdPais)<>'SF' then
select SEFRON.TAUXPAIS.ID into idPais from SEFRON.TAUXPAIS where SEFRON.TAUXPAIS.SID = trim(sIdPais);
end if;

filas:=0;
dbms_output.put_line('['||codigo||']'||filas);
select count(*) into filas from TORGANISMOS where TRIM(TORGANISMOS.CODIGO)=TRIM(codigo);
dbms_output.put_line('['||codigo||']'||filas);
if filas>0 then
dbms_output.put_line(filas);
end if;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder