Come accedere alle colonne concatenate nel registro utilizzando per il ciclo del cursore
-
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?
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