Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [Oracle] Problema valore ritorno funzione

    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!!

  2. #2
    ok, ho capito.
    era il nome della funzione troppo lungo.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.