2017-05-03 19 views
-1

私はoracleを初めて使っています。カーソルのいくつかのフィールドを別のテーブルに入れたいです。可能なオプションはネット上で利用可能であるが、私にとってはうまくいかなかった。プロシージャのあるテーブルにカーソル値を挿入するには

PROCEDURE get_emp_info (p_nbr_rec  IN  NUMBER DEFAULT 10, 
         p_emp_id  IN  NUMBER DEFAULT NULL, 
         p_user_id  IN  VARCHAR2 DEFAULT NULL, 
         rc_emp_info  OUT ref_cursor) 
IS 
BEGIN 
    OPEN rc_emp_info FOR 
     SELECT e.employee_id, 
      e.user_id, 
      e.first_name, 
      e.preferred_name, 
      e.last_name, 
      e.manager_name, 
      FROM employee e 
    WHERE 
    (p_user_id is NULL OR e.user_id = LOWER(p_user_id)) 
end get_emp_info; 

同じような解決方法をご提案してください。 ありがとうございます。

+1

あなたの必要性を明確にしてください。この手順では、テーブルの上にカーソルが表示されますが、代わりに何が必要ですか?いくつかのサンプルデータと必要な結果も役立ちます。 – Aleksej

答えて

0
PROCEDURE get_emp_info (p_nbr_rec  IN  NUMBER DEFAULT 10, 
          p_emp_id  IN  NUMBER DEFAULT NULL, 
          p_user_id  IN  VARCHAR2 DEFAULT NULL, 
          rc_emp_info  OUT ref_cursor) 
    IS 
    BEGIN 
-- Not sure why so many inputs when you are not using it 
     OPEN rc_emp_info FOR 
      SELECT e.employee_id, 
       e.user_id, 
       e.first_name, 
       e.preferred_name, 
       e.last_name, 
       e.manager_name 
       FROM employee e 
     WHERE 
     (p_user_id is NULL OR e.user_id = LOWER(p_user_id)); 
     -- Not sure why are you checking p_user_id is NULL 
     loop 
     fetch rc_emp_info into var1,var2,var3,var4,var5,var6; 
     exit when rc_emp_info%notfound; 
     -- here you do whatever you want with the variables 
     end loop; 
    end get_emp_info; 
関連する問題