2015-06-23 2 views
0

Мне нужна помощь в PL/SQl.Создать таблицу без капли, если она существует

Так моя проблема, следующая проблема:

Существует таблица называется: temp_table и мне нужно создать temp_table без падения/усечение вариант. Это необходимо, потому что все время меняется таблица данных. Так что я знаю его странное, но это необходимо для моей повседневной работы.

Скрипт работает следующим образом: Сценарий выполняет импорт текста в таблицу, и таблица дается. Для подключения базы данных используется dblink. Он работает, но все время я должен использовать DROP. Но мне нужно (если это возможно) создать существующую таблицу без drop/truncate.

Может кто-нибудь мне помочь?

Большое спасибо.

Извините за отсутствие кода sql, но я думаю, что это не обязательно.

+1

Извините, я боюсь, что ваш вопрос непонятен. Если вы хотите создать таблицу, вы используете 'CREATE TABLE', хотя в сущности никогда не имеет смысла создавать объекты в Oracle во время выполнения. Вы можете запросить 'dba_ | all_ | user_tables', чтобы определить, существует ли таблица и только создать ее, если она еще не существует. Но это в лучшем случае имеет смысл только в сценарии установки. Мне трудно представить, что будет делать «создание существующей таблицы». –

+0

Покажите нам сохраненную процедуру. –

+0

По крайней мере, добавьте структуру и данные таблицы в свой вопрос. –

ответ

0

Я думаю, что концепция, которую вы хотите, является внешней таблицей. С внешними таблицами данные хранятся в файлах ОС, таких как CSV. Это позволяет нам заменять наборы данных, не отбрасывая таблицу.

Find out more.

+0

Спасибо за помощь. Это то, что я ищу. – Cafu90

0

Я так понимаю, вы хотите сбросить стол, потому что хотите его перезагрузить, но вы также хотите, чтобы он был как можно ближе к постоянному времени?

Я бы создал две временные таблицы. У вас уже есть один под названием:

temp_table 

Создать другой называется:

temp_table_new 

Загрузите новые данные в temp_table_new, а затем запустить переименовании на него так:

RENAME TABLE temp_table TO temp_table_old 
temp_table_new TO temp_table 

Тогда

drop table temp_table_old 

Этот wi будет очень быстрым, иметь очень мало времени простоя и позволить вам иметь описанную вами функциональность.

+0

Спасибо за помощь, после многих часов поиска я обнаружил, что внешний стол решит мою проблему, но то, что вы написали, очень полезно, спасибо большое. – Cafu90

+0

Без проблем спасибо за отзыв :) –

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