У меня есть TableA, которая имеет сотни тысяч строк и все еще увеличивается в размере.Без перегородок скорость заметно снизилась.
Итак, я создал новую таблицу под названием TableB, в которой столбцы были похожи (как на имя, так и на тип) на TableA в Oracle SQL Developer.(TableA и TableB находятся в одной базе данных, но не в одной и той же таблице). Я дополнительно создал разделы для TableB.
Теперь все, что я хочу сделать, - это скопировать все данные из TableA из TableB, чтобы проверить скоростизапросов.
Чтобы проверить скорости таблиц с разделами, я решил скопировать все данные теперь, когда в TableB есть все те же столбцы, что и A.
insert into TableB ( select * from TableA);
То, что я ожидализ приведенного выше утверждения были данные, которые нужно скопировать, но вместо этого я получил ошибку:
Ошибка, начинающаяся со строки: 1 в команде - вставка в таблицу B (выберите * из таблицы A) Ошибка в командной строке: 1 столбец: 1 Отчет об ошибке - Ошибка SQL: ORA-54013: Операция INSERT запрещена для виртуальных столбцов 54013. 0000 - «Операция INSERT запрещена для виртуальных столбцов» * Причина: Попытка вставить значения в виртуальный столбец * Действие: Повторно выполнить проверку безпредоставляя значения для виртуального столбца
Я посмотрел Виртуальные столбцы, и кажется, что это
"При запросе,виртуальные столбцы выглядят как обычные столбцы таблицы, но их значения выводятся, а не хранятся на диске.Синтаксис для определения виртуального столбца приведен ниже. "
Однако у меня нет никаких данных в TableB вообще. В TableB есть только столбцы, которые соответствуют TableA, поэтому я не уверен относительно того, как мои столбцы могут быть полученыкогда нечего выводить?