Come accedere alle colonne concatenate nel registro utilizzando per il ciclo del cursore

StackOverflow https://stackoverflow.com/questions/8865404

  •  28-10-2019
  •  | 
  •  

Domanda

Cercando di utilizzare i record con il cursore e successivamente indice per tabella nella miscela.

DECLARE CURSOR emp_cur IS
    SELECT employee_id, first_name||' '|| last_name "name"
    FROM employees 
    ORDER BY salary desc;

emp_rec emp_cur%ROWTYPE;

BEGIN 
    FOR emp_rec IN emp_cur
    LOOP
        DBMS_OUTPUT.PUT_LINE('Employee ID:'||emp_rec.employee_id||CHR(10)||
                             'Employee Name:'||emp_rec.name);
        EXIT WHEN emp_cur%ROWCOUNT = 10;
    END LOOP;
END;

Quando eseguo il codice sopra che ottengo

 ERROR at line 13, "NAME" must be declared.

Come posso accedere alla colonna First_name || ' '|| last_name all'interno del loop? O devo solo fare un giro tradizionale, semplice, recuperare e chiudere?

È stato utile?

Soluzione

Sei molto vicino; Il problema è solo che gli identificatori che sono non In doppio quote vengono convertiti in maiuscolo, mentre gli identificatori quello sono In doppio quote lo fanno non. Così name, NAME, e "NAME" sono equivalenti tra loro e tutti sono diversi da "name". O cambia questo:

first_name||' '|| last_name "name"

a questo:

first_name||' '|| last_name name

Oppure, se preferisci, cambia questo:

'Employee Name:'||emp_rec.name

a questo:

'Employee Name:'||emp_rec."name"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top