ciao!

sto creando una funzione che ritorna il valore di un campo che è un CHAR(30):
codice:
CREATE OR REPLACE FUNCTION FN_B2B_TROVA_ARTICOLO_CODICE_DEL_FORNITORE (
    DITTA_IN IN CHAR,
    MODELLOIN IN CHAR
) 
RETURN CHAR IS VAL CHAR(30);

BEGIN
    SELECT
    UNIQUE TRIM(MS.SINONIMO) INTO VAL
    FROM MAT_SINONIMI MS
    INNER JOIN MAT_ANAG MA ON MA.NPAM = MS.NPAM
    WHERE MS.DITMAT = 'XXL'
    AND MS.FVL = ' '
    AND MS.DESCR96 = ' '
    AND MS.TIPO = 'E'
    AND MA.DITMAT = 'XXL'
    AND MS.FVL = ' '
    AND SUBSTR(MA.CODINT, 0, 8) = MODELLOIN;
    
    RETURN(VAL);
    EXCEPTION 
        WHEN NO_DATA_FOUND 
        THEN VAL := ' ';
    RETURN(VAL);
END FN_B2B_TROVA_ARTICOLO_CODICE_DEL_FORNITORE;
ottengo questo errore:
codice:
Report error -
ORA-00972: identificativo troppo lungo
00972. 00000 -  "identifier is too long"
*Cause:    An identifier with more than 30 characters was specified.
*Action:   Specify at most 30 characters.
sinceramente non capisco.
ho fatto funzioni che ritornavano anche un VARCHAR2(96).
e il campo è un CHAR(3).
quindi non riesco proprio a capire dove sia l'errore!!