Oracle db’de bir şemanın tablolarını db link ile başka bir db’ye yere aktarmam gerekiyordu. Bu işlemi yaparken long tipi kolonu olan bir tablonun bu yöntemle aktarılmadığını fark ettim.
Long tipi kolonu olan tabloyu aktarmak için sadece o tabloyu export import yapmak gerekiyor.
Bu örnekte HR şemasından export ettiğim tabloyu EMRAH şemasına import edeceğim.
Export/İmport edilecek tablo:
CREATE TABLE HR.COMMENT( C_ID RAW(16), C_TITLE VARCHAR2(155), C_CONTENT LONG, );
Export/İmport şlemi için db de tanımlı bir directory olmalıdır. Bu örnekte tanımlı directory HOME_DIR=’/home/oracle’ olarak set edilmiştir.
$ expdp userid="hr/hr" DIRECTORY=HOME_DIR TABLES=HR.COMMENT DUMPFILE=hr_comment.dmp LOGFILE=hr_comment_exp.log ROWS=Y
Bu işlem sonucunda “/home/oracle” dizini altında “hr_comment.dmp” dosyasının oluşması ve long tipindeki kolonun verileri de export edilmiş olması gerekiyor.
HR şemasında export edilmiş tabloyu EMRAH şemasına import işlemi aşağıdaki gibi yapılmaktadır.
$ impdp userid="emrah/welcome1" DIRECTORY=HOME_DIR DUMPFILE=hr_comment.dmp LOGFILE=hr_comment_imp.log REMAP_SCHEMA="HR:EMRAH" ROWS=Y
REMAP_SCHEMA parametresi yazılmadığı taktirde import HR şemasına yapılacaktır. REMAP_SCHEMA parametrenin kullanımı “default_şema:yeni_şema” şeklindedir.