|
Associative Arrays помогите
|
|||
---|---|---|---|
#18+
Приветствую! Помогите реализовать. Есть простенькая табличка t1(id, a, b, c). a, b, c заполнены произвольными числами, максимум 6 строк. Нужно написать процедуру, которая бы считала по формуле а*b/c, т.е. через запрос это выглядело бы так -- select a*b/c from t1. При этом входные аргументы для процедуры должны быть в виде ассоциативного массива, который создан на основе таблицы t1. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 19:07 |
|
Associative Arrays помогите
|
|||
---|---|---|---|
#18+
Georggаргументы для процедуры должны быть в виде ассоциативного массива, который создан на основе таблицы t1. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 20:42 |
|
Associative Arrays помогите
|
|||
---|---|---|---|
#18+
andrey_anonymous, спасибо, буду разбираться. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 22:08 |
|
Associative Arrays помогите
|
|||
---|---|---|---|
#18+
andrey_anonymous, Начал адаптировать Ваш код под свои нужды, но что-то поломал и опять в тупике. Считается только два значения. В x1 записывается по первой строке, а в x2 по последней, а надо чтобы по каждой строке считались x1 и x2. Понимаю, что возможно глупые вопросы задаю, но задание дали, а объяснить забыли. До изучения коллекций, судя по плану лекций, еще далеко. А это задание, точней даже часть задания, на пакеты, но преподаватель решил, что в пакете должно быть все, что можно. create or replace package test_pkg is type t_assoc_array_c1 is table of t1%rowtype index by binary_integer; la_array t_assoc_array_c1; procedure p(i_a in t_assoc_array_c1, x1 out number, x2 out number); end test_pkg; create or replace package body test_pkg is procedure p(i_a in t_assoc_array_c1, x1 in out number, x2 in out number) is begin for i in 1 .. i_a.count loop x1:=(i_a(i).a + i_a(i).b + i_a(i).c); x2:=(i_a(i).a + i_a(i).b - i_a(i).c); end loop; end p; end test_pkg; / declare la_array test_pkg.t_assoc_array_c1; x1 number; x2 number; begin select * bulk collect into la_array from t1; test_pkg.p(la_array, x1, x2); dbms_output.put_line('x1='||x1); dbms_output.put_line('x2='||x2); end; / ... |
|||
:
Нравится:
Не нравится:
|
|||
02.05.2019, 11:07 |
|
Associative Arrays помогите
|
|||
---|---|---|---|
#18+
Georgg, вывод в цикле (в test_pkg) ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
02.05.2019, 11:49 |
|
Associative Arrays помогите
|
|||
---|---|---|---|
#18+
Stax, в пакете должна быть еще одна процедура p, но с другими входными данными в виде id из таблицы t1, и процедуры должны работать в режиме перегрузки, т.е. в зависимости от входных данных, должна срабатывать либо первая, либо вторая процедура. я так понимаю, что в при таком условии вывод должен быть вне пакета. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.05.2019, 14:04 |
|
|
start [/forum/topic.php?fid=52&msg=39809279&tid=1882534]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
227ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 360ms |
total: | 681ms |
0 / 0 |