Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle — importować dane do tabeli o innej nazwie?

Jeśli używasz starych narzędzi EXP i IMP, nie możesz tego zrobić. Jedyną opcją jest zaimportowanie do tabeli o tej samej nazwie (chociaż możesz zmienić schemat, do którego należy tabela).

Jednak mówisz, że jesteś na 11g. Dlaczego nie skorzystać z narzędzia DataPump wprowadzonego w 10g, które zastępuje Import i Eksport. Ponieważ w 11g to narzędzie oferuje opcję REMAP_TABLE, która robi dokładnie to, czego chcesz.

edytuj

Po przeczytaniu komentarzy, które OP dodał do innej odpowiedzi podczas pisania tego, nie sądzę, aby opcja REMAP_TABLE zadziałała w ich przypadku. Zmienia tylko nazwy nowych obiektów. Jeśli tabela o oryginalnej nazwie istnieje w schemacie docelowym, import nie powiedzie się z ORA-39151. Przepraszamy.

edytuj ceny

Biorąc pod uwagę rozwiązanie, które ostatecznie wybrał OP (upuść istniejącą tabelę, zastąp nową tabelą), istnieje rozwiązanie z Data Pump, które ma użyć TABLE_EXISTS_ACTION={TRUNCATE | REPLACE} klauzula. Wybór REPLACE upuszcza tabelę, podczas gdy TRUNCATE po prostu… skraca go. W obu przypadkach musimy się martwić ograniczeniami integralności referencyjnej, ale jest to również problem z wybranym rozwiązaniem.

Zamieszczam ten dodatek nie dla OP, ale dla dobra innych poszukiwaczy, którzy znajdą tę stronę w przyszłości.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Łączenie się z bazą danych Oracle za pomocą Ruby

  2. Zapytanie dotyczące procedury składowanej Oracle, takie jak brak pracy z kursorem

  3. Wyrocznia i paginacja

  4. 40 pytań, które musisz wiedzieć o R12.2

  5. Czy mogę mieć włączony indeks złożony podczas korzystania z lewego sprzężenia?