Hi all. I'm on APEX 22.2.6.
I have an interactive report which has source set to PL/SQL Function body returning SQL Query; when I compile my code, I receive ORA-01403 error, no data found.
I have executed the code in SQL Developer and I retrieve data wihtout problems.
Can you please help me to find where is the error?
Here is the code:
declare
istruzione clob := null;
lungh_campo number := null;
POS_SUBSTR NUMBER := 2;
GIRI_LOOP NUMBER := 0;
sub_select clob := null;
begin
/** mi costruisco la sub_select ***/
/** mi tiro fuori la lunghezza dell'errore **/
select length(cod_Err)
into lungh_campo
from stato_di_lavorazione
where ANNO = :P15_ANNO
AND CODICE = :P15_CODICE
AND CID = :P15_CID
AND COD_VERS = :P15_COD_VERSIONE;
IF LUNGH_CAMPO >= 4 THEN
GIRI_LOOP := LUNGH_CAMPO/4;
END IF;
IF GIRI_LOOP > 0 THEN
FOR I IN 1..GIRI_LOOP LOOP
IF I = 1 THEN
sub_select := 'SELECT SUBSTR(COD_ERR,2,3)
FROM STATO_DI_LAVORAZIONE
WHERE ANNO = '||:P15_ANNO||'
AND CODICE = '||:P15_CODICE||'
AND CID = '||:P15_CID||'
AND COD_VERS = '||:P15_COD_VERSIONE||'';
POS_SUBSTR := POS_SUBSTR+4;
ELSE
sub_select := sub_select|| 'UNION ALL
SELECT SUBSTR(COD_ERR,'||POS_SUBSTR||',3)
FROM STATO_DI_LAVORAZIONE
WHERE ANNO = '||:P15_ANNO||'
AND CODICE = '||:P15_CODICE||'
AND CID = '||:P15_CID||'
AND COD_VERS = '||:P15_COD_VERSIONE||' ';
POS_SUBSTR := POS_SUBSTR+4;
END IF;
END LOOP;
sub_select := sub_select||')';
--DBMS_OUTPUT.PUT_LINE('ISTRUZIONE VALE '||CHR(10)||ISTRUZIONE);
ELSE
sub_select := NULL;
END IF;
/******************************/
/* SELECT BASE PER ISTRUZIONE **/
ISTRUZIONE := q'~ SELECT A.COD_VOCE AS COD_VOCE, DESCRIZIONE, DESCR_VOCE, TIPO_ERR
FROM ERRORI_SCI A, VOCE B
WHERE A.ANNO = :P15_ANNO
AND A.COD_VERS = :P15_COD_VERSIONE
AND A.COD_VOCE = :P15_COD_VOCE
AND A.ANNO = B.ANNO
AND A.COD_VOCE = B.COD_VOCE
AND ERRORE IN('~'||sub_select||q'~ ~';
RETURN ISTRUZIONE;
end;