Как получить доступ к сцепленным столбцам в Записи, используя цикл FOR Cursor - PullRequest
0 голосов
/ 15 января 2012

Попытка использовать записи с курсором и последующим индексированием по таблице в миксе.

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;

Когда я запускаю вышеуказанный код, я получаю

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

Как я могу получить доступ к столбцу first_name || ''|| last_name внутри цикла For?или мне просто нужно сделать традиционный OPEN, простой цикл, FETCH и закрыть?

1 Ответ

4 голосов
/ 15 января 2012

Ты очень близко;проблема только в том, что идентификаторы, которые , а не в двойных кавычках, преобразуются в верхний регистр, тогда как идентификаторы, которые равны в двойных кавычках, делают , а не .Итак, name, NAME и "NAME" эквивалентны друг другу, и все они отличаются от "name".Либо измените это:

first_name||' '|| last_name "name"

на это:

first_name||' '|| last_name name

, либо, если хотите, измените это:

'Employee Name:'||emp_rec.name

на следующее:

'Employee Name:'||emp_rec."name"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...