2014-11-16 11 views
0

Я хочу генерировать запрос курсора динамически на основе нескольких переменных pl-sql, используемых в одном скрипте. Рассмотрим примерДинамически генерировать запрос курсора

1. DECLARE 
2.  emp_id number(12); 
3.  CURSOR empList_cur is select emp_id from employee; 
4.  
5. BEGIN 
6.  LOOP 
7.   FETCH empList_cur Into emp_id ; 
8.   EXIT WHEN customerList_cur%NOTFOUND; 
9.   CURSOR activityList_cur is (select empDetails from empDet where empNo=:emp_id) 
10.  END LOOP; 
11. END; 

Я хочу использовать значение emp_id извлеченной из одного курсора в другой запрос SQL, как и в строке 9 в фрагменте кода выше.

Что делать, если правильный синтаксис для этого же?

Заранее спасибо

ответ

0

Вы запрос просто принимать значение динамически, а не Dynamic SQL сам.

DECLARE 
    l_emp_id number(12); /* Don't use the column name itself as variable name */ 
    CURSOR empList_cur is select emp_id from employee; 

BEGIN 
    LOOP 
     FETCH empList_cur Into l_emp_id ; 
     EXIT WHEN customerList_cur%NOTFOUND; 
     FOR I IN (select empDetails from empDet where empNo=l_emp_id) 
     LOOP 
      /* you can simply use the variable here , 
      and using a Cursor here is not efficient */ 
     -- Other statements 
     END LOOP; 
    END LOOP; 
END; 
Смежные вопросы