2015-04-29 17 views
0

Я работаю над преобразованием TSql в Plsql. Есть несколько таблиц переменные, объявленные и используемые в TSQL, какПеременная таблицы Tsql для Oracle PLSql

DECLARE @table_var table(id_ int ......) 
WHILE ... 
begin 
insert into @table_var select ... 
... 
select * from @table_var.. 

Я думаю, что в оракула глобальной временной таблицы можно использовать, но данные будут максимальными 10k строк.

Насколько эффективны глобальные временные таблицы в этом случае? Есть ли другой способ, кроме global temporary table, и table types в Oracle для преобразования аналогичного SQL-запроса?

версия Oracle: oracle11g или oracle12c

+1

В Oracle редко встречается временная таблица, и поскольку вы обнаружили, что она поддерживает только глобальные временные таблицы, а не локальные. Реальный вопрос: спросите себя, действительно ли вам нужно хранить данные в своей собственной структуре - вам нужно что-либо делать с помощью 'table_var', кроме как выбрать его позже, что вы могли бы сделать, выбрав/присоединившись к вашему первоначальному выбрать вместо этого? Вместо этого вы можете использовать типы таблиц на уровне схемы, но они тоже могут быть излишними. Фрагмент слишком мал и расплывчатый, чтобы действительно сказать, что вам нужно. –

+0

В коде есть такая же область, что 'table_var' не может быть заменен на' select' или 'join'. Я не понимал «типы таблиц на уровне схемы», но они могут быть слишком перегружены ... «тип таблицы» или «temp table» для размера данных '10k rows'? – Praveen

+0

Это зависит от того, почему * он не может быть заменен, что вы делаете с этой переменной, сколько раз вы его используете, насколько дорогой запрос, который его заполняет, и т. Д. На данный момент ваш вопрос слишком абстрактен, кроме для одинаково абстрактных ответов * 8-) –

ответ

0

В зависимости от размера данных и задачи, которые вы хотите achieve-- вы можете использовать

  1. PL/SQL записи/таблицы и объемной обработки
  2. удерживать данные в курсоре и прокручивать его
  3. , если вы хотите получить какое-либо обновление запроса - вы можете использовать встроенный просмотр (с сохранением первичного ключа)
+0

'table type' или' temp table' для размера данных в 10 тыс. строк? – Praveen

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