Гость
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Использование PL/SQL - коллекций / 3 сообщений из 3, страница 1 из 1
18.03.2009, 11:36
    #35876100
Akni
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование PL/SQL - коллекций
Добрый день всем.

В базе есть такая структура данных (схематически):

Две таблицы связанных между сообой соотношением один-ко-многим (master-detail)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Tbl_main (
Main_id number primary key,
M_field1,
…
M_fieldN);

Tbl_detail(
Detail_id number primary key,
Main_id number foreign key references tbl_main (main_id),
D_field1,
…
D_fieldN);

Пакет, в котором с использованием PL/SQL коллекций реализована процедура вставки данных сразу в обе таблицы:
Код: plaintext
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.
Package pkg_job
Is
Type t_main is table of tbl_main%ROWTYPE;
Type t_detail is table of tbl_detail%ROWTYPE;
Procedure add_element(i_main_rec in tbl_main%ROWTYPE,
I_detail_set in t_detail);
…
END;

Package body pkg_job
Is

Procedure add_element (i_main_rec in tbl_main%ROWTYPE,
I_detail_set in t_detail)
Is
New_id tbl_main.main_id%TYPE;
Begin
Insert into tbl_main (main_id, M_field1, …, M_fieldN)
Values (i_main_seq.NEXTVAL, i_main_rec.M_field1, … , i_main_rec.M_fieldN)
Return main_id into new_id;

For indx n i_detail_set.first .. i_detail_set.last
Loop
 Insert into tbl_detail (detail_id, main_id, d_field1, …, d_fieldN)
Values (i_detail_seq.NEXTVAL, new_id, i_detail_set(indx).d_field1, …, i_detail_set(indx).d_fieldN);
End loop;
Commit;
End;
...
End;
Теперь, собственно, вопрос:
Каким образом можно использовать этот механизм из APEX?
Прочитала про коллекции в APEX, посмотрела в нете примеры создания master-detail форм, там везде используются apex_collections. Но они мне кажутся слишком «глобальными», хотелось бы использовать свои имеющиеся структуры и загонять данные из элементов формы в описанные в пакете структуры.

Если вопрос тривиальный, то не кидайте тапками, а толкните в нужном направлении. Опыта с APEX не так много, в нете пока ничего на эту тему не нашла.
...
Рейтинг: 0 / 0
19.03.2009, 02:03
    #35878110
Ales Protiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование PL/SQL - коллекций
Свои "пакетные" коллекции использовать не получится. Apex использует пул соединений, т.е. нет никакой гарантии что при каждом следующем вызове ваш запрос пойдет по тому же соединению. А пакетные переменные "привязаны" к соединению.
Коллекции апекс хранятся в таблицах, а apex_collections - это по сути API, которое работает с таблицами.
...
Рейтинг: 0 / 0
22.03.2009, 22:57
    #35884444
Ivandr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование PL/SQL - коллекций
Ales ProtivСвои "пакетные" коллекции использовать не получится. Apex использует пул соединений, т.е. нет никакой гарантии что при каждом следующем вызове ваш запрос пойдет по тому же соединению. А пакетные переменные "привязаны" к соединению.


ты хочешь сказать что с пакетами из БД работать в APEX нельзя, потому что нет гарантии что они стабильно будут выполняться из APEX? я правильно понял или я что то не так понял?
и если я правильно понял, можешь рассказать чуть по подробней про этот "пул соединений"?
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Использование PL/SQL - коллекций / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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