Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22/07/2011, 06:36
jc3000
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: busqueda sentencia de faltantes

Cita:
Iniciado por calichet Ver Mensaje
El error me sale en la palabra FOR así:

ORA-00900: sentencia SQL no válida
----------------------------------------------------
FOR ANO IN TO_NUMBER(substr(:Minimo,1,4))..TO_NUMBER(substr(: Maximo,1,4)) LOOP
FOR MES IN 1..12 LOOP
EXECUTE IMMEDIATE ('SELECT COUNT(*) AS REGISTROS FROM REC_PLANOS WHERE COTIZANTE = to_number(4975093) AND substr(periodo_cotizado,1,4) = to_number(1998) AND substr(periodo_cotizado,5,2) = to_number(12)') BULK COLLECT INTO REGISTROS

Así a bote pronto, veo mal esto :

EN un PL, una sentencia SELECT debe acompañarse por el INTO ( Exceptuando cursores, claro )

SELECT CAMPO
INTO VARIABLE
FROM TABLA;

El espacio entre los dos puntos y Maximo, sobra .

(: Maximo,1,4)


Esto está mal.

dbms_output.put_line('NO EXISTE DATO DEL PERIODO ' :ANO :MES)

Debería ser

dbms_output.put_line('NO EXISTE DATO DEL PERIODO '|| :ANO|| :MES)

Desconozco que es eso de :ano, :mes, :maximo, :minimo....................... ¿ bind variables ?

En la cadena entrecomillada ¿ haces un to_number de un number ?, me dá que la tienes mal montada, pero eso te chillaría en ejecución, no en " parseo "