Oracle'da tabloları (ve diğer objeleri) bir tablespace'den diğerine taşımak için komut olmasına rağmen, taboları bir schemadan diğerine taşımak her hangi bir komut yok. Eğer tabloları schemalar arasında taşımak istiyorsanız şu yöntemleri kullanabilirsiniz:
1) CREATE TABLE komutu ile tablonun bir kopyasını oluşturabilirsiniz:
1 | SQL> CREATE TABLE ertugrul.employees AS SELECT * FROM hr.employees; |
Eğer tablonuzda çok fazla sayıda kayıt varsa, bu işlemi hızlandırmak için ilk başta tablonun yapısını oluşturup daha sonra /*+ APPEND */ ve NOLOGGING ile hızlandırılmış INSERT yapabilirsiniz.
1 | SQL> CREATE TABLE ertugrul .employees AS SELECT * FROM hr.employees WHERE 1=0; SQL> INSERT /*+ APPEND */ INTO ertugrul
.employees SELECT * FROM hr.employees NOLOGGING; |
Bu yöntem tablo üzerindeki indexleri, (constraint) kısıtları, triggerları kopyalamayacaktır. Bunları eklemek için exp/imp veya datapump araçlarını kullanabilirsiniz.
Hiç yorum yok:
Yorum Gönder