powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Associative Arrays помогите
8 сообщений из 8, страница 1 из 1
Associative Arrays помогите
    #39808521
Georgg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую!

Помогите реализовать.
Есть простенькая табличка t1(id, a, b, c). a, b, c заполнены произвольными числами, максимум 6 строк.
Нужно написать процедуру, которая бы считала по формуле а*b/c, т.е. через запрос это выглядело бы так -- select a*b/c from t1.
При этом входные аргументы для процедуры должны быть в виде ассоциативного массива, который создан на основе таблицы t1.
...
Рейтинг: 0 / 0
Associative Arrays помогите
    #39808556
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Associative Arrays помогите
    #39808575
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Georggаргументы для процедуры должны быть в виде ассоциативного массива, который создан на основе таблицы t1.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
declare
  type t_assoc_array_c1 is table of t1%rowtype index by binary_integer;
  la_array t_assoc_array_c1;
  procedure p(i_a t_assoc_array_c1) is
  begin
    for i in 1 .. i_a.count
    loop
      dbms_output.put_line(i_a(i).a * i_a(i).b / i_a(i).c);
    end loop;
  end;
begin
  select * bulk collect into la_array from t1;
  p(la_array);
end;
/

...
Рейтинг: 0 / 0
Associative Arrays помогите
    #39808998
Georgg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey_anonymous, спасибо, буду разбираться.
...
Рейтинг: 0 / 0
Associative Arrays помогите
    #39809097
Georgg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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;
/
...
Рейтинг: 0 / 0
Associative Arrays помогите
    #39809141
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Georgg,

вывод в цикле (в test_pkg)

.....
stax
...
Рейтинг: 0 / 0
Associative Arrays помогите
    #39809269
Georgg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,
в пакете должна быть еще одна процедура p, но с другими входными данными в виде id из таблицы t1, и процедуры должны работать в режиме перегрузки, т.е. в зависимости от входных данных, должна срабатывать либо первая, либо вторая процедура. я так понимаю, что в при таком условии вывод должен быть вне пакета.
...
Рейтинг: 0 / 0
Associative Arrays помогите
    #39809279
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Georgg,

ничего не понял
но подозреваю что х1,х2 должны быть тоже "Associative Arrays"

.....
stax
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Associative Arrays помогите
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]