Jak mogę skopiować schemat tabeli. Czyli table z nazwą kolumn ale bez rekordów w Oracle ?
0
0
create table xyz_new as select * from xyz where 1=0;
(wujek google :) )
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
1
pobierasz DDLa, zmieniasz nazwę tabeli (i constrainów jeśli są nazwane) i odpalasz skrypt
0
Masz do tego np. pakiet dbms_metadata.
Najprostsze użycie:
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
.