Allora, ho corretto la query e non mi da errore:
DECLARE
COUNT_RECORD NUMBER;
NPU NUMBER;
BREVE CHAR(16);
RAG_SOC VARCHAR2(64);
CODICE_ATTRIB VARCHAR(12);
VALORE VARCHAR(100);
BEGIN
SELECT COUNT(*) INTO COUNT_RECORD FROM GEN_ATTRIB_ESTESI GAE
INNER JOIN GEN_ANAG GEN ON GAE.NPU = GEN.NPU
WHERE
GAE.DITAGENDA = 'XXL'
AND GEN.NPU = 18126
AND GAE.CODICE_ATTR LIKE 'UBICAZ%'
AND GEN.DITAGENDA = 'XXL'
AND GEN.FVL = ' '
ORDER BY GEN.RAGSOC;
IF COUNT_RECORD > 0 THEN
SELECT
GEN.NPU,
GEN.BREVE,
GEN.RAGSOC,
GAE.CODICE_ATTR,
GAE.VALORE VALORE
INTO
NPU,
BREVE,
RAG_SOC,
CODICE_ATTRIB,
VALORE
FROM GEN_ATTRIB_ESTESI GAE
INNER JOIN GEN_ANAG GEN ON GAE.NPU = GEN.NPU
WHERE
GAE.DITAGENDA = 'XXL'
AND GEN.NPU = 18126
AND GAE.CODICE_ATTR LIKE 'UBICAZ%'
AND GEN.DITAGENDA = 'XXL'
AND GEN.FVL = ' '
ORDER BY GEN.RAGSOC;
ELSE
SELECT
GEN.NPU NPU,
GEN.BREVE BREVE,
GEN.RAGSOC RAGSOC,
'' ATTRIB,
'' VALORE
INTO
NPU,
BREVE,
RAG_SOC,
CODICE_ATTRIB,
VALORE
FROM GEN_ANAG GEN
WHERE
GEN.NPU = 18126
AND GEN.DITAGENDA = 'XXL'
AND GEN.FVL = ' '
ORDER BY GEN.RAGSOC;
END IF;
END;
però non stampa i record a console.
mi da solo Procedura PL/SQL completata correttamente.