2013-10-15 3 views
1

Я новичок в PL/SQL, и мне нужно создать временную таблицу из 3 таблиц, а набор записей будет доступен для отчета, мне нужен рекорсет только на время сеанса. Я хотел бы знать, что является лучшим способом, так как я слышал, что временные глобальные таблицы - не самый лучший вариант.pl/sql Создание временных глобальных таблиц

  • table1: fields t1.pnum, t1.dnum t1.amount, t1.c_amount
  • table2: fields t2.pnum, t2.dnum t2.amount, t2.c_amount
  • Таблица3: fields t3.pnum, t3.dnum t3.amount, t3.c_amount

где TABLE2 и Table3 результаты союзные к table1 по pnum

+0

Почему, по вашему мнению, вам нужно сделать это в хранимой процедуре? –

ответ

1

Вы создаете глобальную временную таблицу в качестве обычного объект схемы, а не «на лету» с PL/SQL. Затем вы вставляете в него и выбираете из него. Данные, которые вы просматриваете, видны только вашему сеансу, а когда вы либо совершаете, либо отключаете или удаляете данные, он уходит.

Однако, вы уверены, что вам это нужно? Вы часто можете обойтись без GTT в пользу общих табличных выражений (предложения WITH).

+0

Спасибо, Дэвид, я думаю, что создание объекта схемы - лучший способ, я не знаком с Common Table Expressions, не могли бы вы рассказать о теме? ваша помощь очень ценится – sgg

Смежные вопросы