|
Вопрос по курсору
|
|||
---|---|---|---|
#18+
PROCEDURE open_emp_cv (emp_cv IN OUT EmpCurTyp, choice IN INT) IS BEGIN IF choice = 1 THEN OPEN emp_cv FOR SELECT * FROM emp WHERE comm IS NOT NULL; ELSIF choice = 2 THEN OPEN emp_cv FOR SELECT * FROM emp WHERE sal > 2500; ELSIF choice = 3 THEN OPEN emp_cv FOR SELECT * FROM emp WHERE deptno = 20; END IF; END; Подскажите как нужно перезаписать код чтобы была возможность сделать union результата первого силекта, второго, третьего ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2020, 12:09 |
|
Вопрос по курсору
|
|||
---|---|---|---|
#18+
x17.mstu сделать union результата open.. for select .. union select .. union select .. Попробуйте внятно сформулировать, что вам на самом деле надо ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2020, 12:14 |
|
Вопрос по курсору
|
|||
---|---|---|---|
#18+
env, Да не так написал есть функция сreate or replace function f_api(p_emp in varchar2, p_emp_id in integer) return integer is cur sys_refcursor; BEGIN IF emp='engineer' THEN OPEN cur for Select * from EMPLOYEE where emp_id=p_emp_id; UNION ALL ELSIF emp='doctor' THEN OPEN cur for Select * from EMPLOYEE where emp_id=p_emp_id; END IF; return 0; END; В функцию должен передаваться список p_emp (может состоять из ('engineer', 'doctor') или из одного значения 'engineer') . Так вот в зависимости от этого нужно делать два UNION или один Как это реализовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2020, 13:06 |
|
Вопрос по курсору
|
|||
---|---|---|---|
#18+
x17.mstu, Ничего не понял, но очень интересно. Попробуем ещё раз. Какую задачу вы решаете на самом деле? з.ы. Пока что задача больше похожа на "выстрелить себе в ногу" ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2020, 13:13 |
|
Вопрос по курсору
|
|||
---|---|---|---|
#18+
env, Есть функция в которую передается список и emp_id. Нужно вывести или результат обьединения (так как список состоит из двух параметров doctor и engineer ИЛИ результат одного селекта - если в качестве параметра передается одно значение в списке) Что непонятно, неясно? сreate or replace function f_api(p_emp in varchar2, p_emp_id in integer) return integer is cur sys_refcursor; BEGIN IF emp='engineer' THEN OPEN cur for Select * from EMPLOYEE where emp_id=p_emp_id; UNION ALL ELSIF emp='doctor' THEN OPEN cur for Select * from EMPLOYEE where emp_id=p_emp_id; END IF; return 0; END; ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2020, 13:16 |
|
Вопрос по курсору
|
|||
---|---|---|---|
#18+
я так понимаю что список это nesteed loop ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2020, 13:26 |
|
Вопрос по курсору
|
|||
---|---|---|---|
#18+
В текущей постановке задачи ваш вопрос не имеет смысла. Приведённый код - поток бреда и только сбивает с толку. Опишите какую задачу решаете и почему выбран такой способ решения. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2020, 15:19 |
|
Вопрос по курсору
|
|||
---|---|---|---|
#18+
x17.mstu PROCEDURE open_emp_cv (emp_cv IN OUT EmpCurTyp, choice IN INT) IS BEGIN IF choice = 1 THEN OPEN emp_cv FOR SELECT * FROM emp WHERE comm IS NOT NULL; ELSIF choice = 2 THEN OPEN emp_cv FOR SELECT * FROM emp WHERE sal > 2500; ELSIF choice = 3 THEN OPEN emp_cv FOR SELECT * FROM emp WHERE deptno = 20; END IF; END; Подскажите как нужно перезаписать код чтобы была возможность сделать union результата первого силекта, второго, третьего Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Но можно и так Код: plsql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2020, 22:39 |
|
Вопрос по курсору
|
|||
---|---|---|---|
#18+
А зачем там UNION вообще? Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2020, 10:21 |
|
Вопрос по курсору
|
|||
---|---|---|---|
#18+
PuM256, В итоге сделал через парсинг json , на вход подал clob ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2020, 15:45 |
|
|
start [/forum/topic.php?fid=52&fpage=29&tid=1880600]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 274ms |
total: | 418ms |
0 / 0 |