|
|
|
про массив и передача его как параметра
|
|||
|---|---|---|---|
|
#18+
Доброе время суток! может я и простой вопрос спрошу, но хочется определенности: задача: есть запрос select e.user_id,e.user_name from emp e;, который возвращает 2 поля user_id и user_name и надо сохранить эти записи в массиве и передать его в другую процедуру, в которой можно пользоваться этим массивом Как я думаю надо делать: 1. Сделать объектный тип create type t_list_rec as object (user_id varchar2(50 CHAR),user_name varchar2(255 char)); 2. затем в процедуре я создаю тип таблицу type t_list_tab is table of t_list_rec; 3. затем создаю переменную с табличным типом type t_list_tab is table of t_list_rec; 4. Дальше нужно заполнить этот массив. Как лучше это сделать ??? И правильно ли я думаю, может есть другие варианты заполнение двумерного массива и последующей передачи вот мой код Код: 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. но пишет ошибку : Error: PLS-00321: expression 'T_LIST_REC' is inappropriate as the left hand side of an assignment statement ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 19:42 |
|
||
|
про массив и передача его как параметра
|
|||
|---|---|---|---|
|
#18+
dmitriy22, 1) Если у тебя процедуры в одном пакете, то создавать тип на уровне схемы необязательно - достаточно объявить тип в пакете. 2) Помимо передачи массива информации в виде table of можно использовать курсорную переменную или xmltype. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 20:15 |
|
||
|
про массив и передача его как параметра
|
|||
|---|---|---|---|
|
#18+
Да и фетчить в массив/коллекцию можно используя bulk collect into ... limit ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 20:16 |
|
||
|
про массив и передача его как параметра
|
|||
|---|---|---|---|
|
#18+
AmKad, 1. процедуры в разных пакетах а можно на моем примере ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 20:35 |
|
||
|
про массив и передача его как параметра
|
|||
|---|---|---|---|
|
#18+
AmKad, хорошо бы пример ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 20:36 |
|
||
|
про массив и передача его как параметра
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 20:48 |
|
||
|
про массив и передача его как параметра
|
|||
|---|---|---|---|
|
#18+
AmKad, спасибо сделал так: procedure list_arr --p_user_list out fsdw_export.t_list_rec is cursor cur_list is select e.user_id,e.user_name from emp e; type t_list_table is table of cur_list%rowtype; v_list t_list_table; begin SELECT e.user_id,e.user_name BULK COLLECT INTO v_list FROM fsdw_export.emp e; for i in v_list.first .. v_list.last loop dbms_output.put_line(v_list(i).user_id || ':' || v_list(i).user_name); end loop; --p_user_list := t_list_table; end list_arr; работает, но как теперь передать и какой нужно определить параметр в другую процедуру в другом пакете ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 21:31 |
|
||
|
про массив и передача его как параметра
|
|||
|---|---|---|---|
|
#18+
dmitriy22в которой можно пользоваться этим массивоми в которое же место ты собрался использовать этот массив? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2016, 11:24 |
|
||
|
про массив и передача его как параметра
|
|||
|---|---|---|---|
|
#18+
вариабля, как параметр в процедуре ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2016, 16:32 |
|
||
|
про массив и передача его как параметра
|
|||
|---|---|---|---|
|
#18+
dmitriy22, использовать параметр как параметр. никогда не догатался бы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2016, 19:39 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=191&tid=1887072]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
50ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 287ms |
| total: | 417ms |

| 0 / 0 |
