[Oracle] PL/SQL: Qualificare Attributi e Nomi di Variabili

Rispondi
Roberto
Amministratore
Messaggi: 161
Iscritto il: 19/12/2009, 19:30

[Oracle] PL/SQL: Qualificare Attributi e Nomi di Variabili

Messaggio da Roberto »

Se abbiamo una variabile che si riferisce ad una colonna che condividono lo stesso nome possiamo utilizzare le procedure per riferirci ad entrambi senza modificarne il nome:

Codice: Seleziona tutto

CREATE OR REPLACE PROCEDURE ricerca_per_cognome(cognome IN VARCHAR2) AS
    dip_nome roberto.dipendente.nome%TYPE;
    dip_cognome roberto.dipendente.cognome%TYPE;
    dip_email roberto.dipendente.email%TYPE;
BEGIN
    SELECT nome, cognome, email
    INTO dip_nome, dip_cognome, dip_email
    FROM DIPENDENTE
    WHERE cognome = ricerca_per_cognome.cognome;
    
    DBMS_OUTPUT.PUT_LINE('Trovato il seguente dipendente: ' || dip_cognome || ' ' || dip_nome || ' ' || dip_email);
    
    EXCEPTION
        WHEN NO_DATA_FOUND THEN
            DBMS_OUTPUT.PUT_LINE('Nessun dipendente trovato con il dato ID');
        WHEN TOO_MANY_ROWS THEN
            DBMS_OUTPUT.PUT_LINE('Con il dato ID esistono diversi dipendenti');
END;
Come è possibile notare nella query nonostante la variabile abbia lo stesso nome della colonna, per riferirci ad essa abbiamo utilizzato il nome della procedura:

Codice: Seleziona tutto

ricerca_per_cognome.cognome
In alternativa si sarebbe ottenuto lo stesso effetto utilizzando le LABEL.

Roberto Basile
Rispondi