Kopia schematu tabeli

Dev007
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 164
0

Jak mogę skopiować schemat tabeli. Czyli table z nazwą kolumn ale bez rekordów w Oracle ?

wemibo
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: okolice Warszawy
  • Postów: 128
0
Kopiuj
create table xyz_new as select * from xyz where 1=0;

(wujek google :) )

BlackBad
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 454
0

Tylko należy pamiętać, że tak się nie skopiują indexy, klucze etc. W sumie nie wiem czy to podlega pod "schemat tabeli" czy nie :P

abrakadaber
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6610
1

pobierasz DDLa, zmieniasz nazwę tabeli (i constrainów jeśli są nazwane) i odpalasz skrypt

YA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2385
0

Masz do tego np. pakiet dbms_metadata.

Najprostsze użycie:

Kopiuj
select dbms_metadata.get_ddl('TABLE','TABELKA','OWNER') from dual;

Przed pobraniem DDLa, można wskazać parametry, które mają ulec zmianie, np. mapowanie OWNER na OWNER2, czy wycięcie klauzuli dotyczącej fizycznego składowania danych. Takiego DDLa można zapakować do zmiennej i wykonac via EXECUTE IMMEDIATE

Inna opcja to expdp/impdp, które ma możliwość działania po db linkach.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.