|
|
|
как вернуть коллекцию в out-параметре функции?
|
|||
|---|---|---|---|
|
#18+
Добрый день. Помогите, пожалуйста, разобраться, как вернуть коллекцию в out-параметре функции в pl-sql пакете? Элементом коллекции является запись, состоящая из нескольких полей. Создала запись, объявила коллекцию, как VARRAY типа этой записи. TYPE rec IS RECORD ( client_id number, status varchar2(1), startDate date ); TYPE clientArray IS VARRAY(1) OF rec; Написала функцию function GetClientState (client_id number, client_info out clientArray) return pls_integer is l_resultRow rec; l_client_info clientArray; begin l_client_info := clientArray(); l_client_info .extend(1); for cur in (select c.client_id, c.status, c.startDate from clients c where c.client_id = client_id ) loop l_resultRow.client_id:= cur.client_id; l_resultRow.status := cur.status; l_resultRow.startDate := cur.startDate ; l_client_info (1) := l_resultRow; end loop; client_info := l_client_info; return 1; end; но почему-то в client_info ничего не возвращается:( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2018, 11:28 |
|
||
|
как вернуть коллекцию в out-параметре функции?
|
|||
|---|---|---|---|
|
#18+
swatch.exefunction GetClientState (client_id number, client_info out clientArray) return pls_integerОдин клиент в массиве? - Где логика? swatch.exe Код: plsql 1. Наивная. RTFM Resolution of Names in Static SQL Statements (FAQ) swatch.exeно почему-то в client_info ничего не возвращается:(Тебе это только кажется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2018, 11:39 |
|
||
|
как вернуть коллекцию в out-параметре функции?
|
|||
|---|---|---|---|
|
#18+
Elicswatch.exefunction GetClientState (client_id number, client_info out clientArray) return pls_integerавторОдин клиент в массиве? - Где логика? Не один клиент, а информация по одному клиенту. swatch.exe Код: plsql 1. 2. 3. Наивная. RTFM Resolution of Names in Static SQL Statements (FAQ) Ну там входной параметр $client_id, я неправильно написала. swatch.exeно почему-то в client_info ничего не возвращается:(Тебе это только кажется. И зачем вообще так отвечать?! Нет желания помогать, можно просто пройти мимо. а то, вроде, ответил, но и ничего по делу не сказал:( Я понимаю, что client_info заполняется. Вопрос в том, как вернуть это через OUT-параметр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2018, 13:15 |
|
||
|
как вернуть коллекцию в out-параметре функции?
|
|||
|---|---|---|---|
|
#18+
swatch.exeа то, вроде, ответил, но и ничего по делу не сказал:(Не надо воинствовать. 17247723 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2018, 13:33 |
|
||
|
как вернуть коллекцию в out-параметре функции?
|
|||
|---|---|---|---|
|
#18+
Добрый день. Вот мое решение, адаптируйте под себя: CREATE OR REPLACE TYPE obj_schema_tree AS OBJECT( recordid varchar2(30) , sch_name varchar2(4000) , descr varchar2(250) , img varchar2(100)); CREATE OR REPLACE TYPE tbl_schema_tree AS TABLE OF obj_schema_tree; create or replace function f_get_tbl_schema_tree (parentid varchar2) return tbl_schema_tree as return_tbl tbl_schema_tree; qr clob; begin qr:='select obj_schema_tree(recordid, sch_name, descr, img) from ...' execute immediate qr bulk collect into return_tbl using parentid; return return_tbl; end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2018, 14:21 |
|
||
|
как вернуть коллекцию в out-параметре функции?
|
|||
|---|---|---|---|
|
#18+
и заюыл добавить вызов: select table(f_get_tbl_schema_tree(123)) from dual; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2018, 14:24 |
|
||
|
как вернуть коллекцию в out-параметре функции?
|
|||
|---|---|---|---|
|
#18+
swatch.exe, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. старайтесь избегать называть одинаково колоноки в таблице и переменные/параметры (c.client_id = client_id ) зы заполнять коллекции иногда удобно с помощью bulk collect ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2018, 14:26 |
|
||
|
|

start [/forum/topic.php?fid=52&gotonew=1&tid=1883747]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
135ms |
get topic data: |
8ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 262ms |
| total: | 487ms |

| 0 / 0 |
