0

ミックス内のテーブルごとに、カーソルと後でインデックスを使用してレコードを使用しようとしています。

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||' にアクセスするにはどうすればよいですか? '||For ループ内の last_name? それとも、従来のOPEN、単純なループ、FETCH、およびクローズを行う必要がありますか?

4

1 に答える 1

4

あなたはとても親しいです。問題は、二重引用符で囲まれていない識別子が大文字に変換されるのに対し、二重引用符で囲まれている識別子は大文字に変換されないことです。したがってnameNAME、 、および"NAME"は互いに同等であり、それらはすべて とは異なり"name"ます。これを変更します:

first_name||' '|| last_name "name"

これに:

first_name||' '|| last_name name

または、必要に応じて、これを変更します。

'Employee Name:'||emp_rec.name

これに:

'Employee Name:'||emp_rec."name"
于 2012-01-14T21:42:56.987 に答える