Cita:
Iniciado por calichet
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 "