Аналог в Oracle временных таблиц MsSql
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Аналог в Oracle временных таблиц MsSql Expand / Collapse
Автор
Сообщение
27.05.2002 8:06
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 15.07.2002 12:31
Сообщ.: 9, Visits: 100
Перевожу проект MSSQL в Oracle. В mssql много используют временные таблицы в процедурах и блоках как локальные переменные. Есть аналоги этого в oracle
Сообщ. #751040
27.05.2002 18:58
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 16.09.2005 15:23
Сообщ.: 46, Visits: 507
Думаю, самым простым аналогом могут быть PL/SQL таблицы

[code]
DECLARE

TYPE t_pl_table IS TABLE OF a_table%rowtype INDEX BY BINARY_INTEGER;
pl_table t_pl_table;
i BINARY_INTEGER;

BEGIN

i := 0;

FOR Rec IN (SELECT * FROM a_table)
LOOP

pl_table(i) := Rec;
i := i + 1;

END LOOP;

END;

Доступ к полям pl_table(i).field.

Индексом может быть любое целое число (не обязательно по порядку).

Дополнительно у PL-таблиц есть разные методы Exists, First, Last, Prior, Next, Delete...

Более сложными аналогами могут быть VARRAYS и NESTED TABLES.
Сообщ. #751129
29.05.2002 12:59
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 29.05.2002 12:57
Сообщ.: 6, Visits: 67
Вычитал в одном из форумов. Может поможет.
К сожалению не сохранил ни автора ни место расположения
откуда взял. Но в доке действительно описано.
Удачи.

"Существеут 2 типа временных таблиц - одна хранит свои записи до завершения транзакции и называеться transaction-specific temporary table. Другая, до завершения сессии (session-specific t.t.). После завершения транзакции/сессии все записи из таблицы автоматически удаляються (ну для второй корректнее будет сказать "транкейтяться"(truncate)). Создаються таблицы так:
-- 1 тип
CREATE GLOBAL TEMPORARY TABLE TempTable
(
D1 NUMBER(10),
D2 NUMBER(10)
)
ON COMMIT DELETE ROWS;

--2 тип
CREATE GLOBAL TEMPORARY TABLE TempTable
(
D1 NUMBER(10),
D2 NUMBER(10)
)
ON COMMIT PRESERVE ROWS;

Об их ограничениях можно почитать в документации, одним из существенных ограничений являеться невозможность создать ссылочную целостность (foreign key). Но это и не нужно."
Сообщ. #751360
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 2:01