ciao!
ho provato a richiamare direttamente la funzione.
così non ho errori, però mi esce sempre il valore 0 (quello messo per default nell'EXCEPTION):
codice:
create or replace FUNCTION FN_B2B_DESC_ATRR_AMM (
DITTA_ATTRIN In CHAR,
CODICE_ATTRIIN IN VARCHAR2,
VALOREIN IN VARCHAR2
)
RETURN VARCHAR2 IS VAL VARCHAR2(100);
--
BEGIN
SELECT DESC1024 INTO VAL
FROM ATTREST_AMMESSI
WHERE DITTA_ATTR = DITTA_ATTRIN
AND CODICE_ATTR = CODICE_ATTRIIN
AND VALORE = VALOREIN;
RETURN(VAL);
EXCEPTION
WHEN NO_DATA_FOUND
THEN VAL := '0';
RETURN(VAL);
END FN_B2B_DESC_ATRR_AMM;
l'altra funzione (quella da cui prendere il parametro):
codice:
create or replace FUNCTION FN_B2B_TROVA_ART_ATTR (
DITMATIN In CHAR,
NPAMIN IN CHAR,
CODICE_ATTRIIN IN VARCHAR2
)
RETURN VARCHAR2 IS VAL VARCHAR2(100);
--
BEGIN
SELECT VALORE INTO VAL
FROM MAT_ATTRIB_ESTESI
WHERE DITMAT = DITMATIN
AND NPAM = NPAMIN
AND CODICE_ATTR = CODICE_ATTRIIN;
RETURN(VAL);
EXCEPTION
WHEN NO_DATA_FOUND
THEN VAL := '0';
RETURN(VAL);
END FN_B2B_TROVA_ART_ATTR;
quindi anche i valori li ho messi dello stesso tipo.
nella select ho messo questo:
codice:
FN_B2B_DESC_ATRR_AMM('XXL', 'PACCHETTO', FN_B2B_TROVA_ART_ATTR('XXL', MAT_ANAG.NPAM, 'PACCHETTO')) PACC_DESC,