Oracle expdp/impdp са query условом и између две различите шеме на бази
У овом примеру урадићемо експорт чистих података из табеле, без констрејнта, индекса, тригера и осталих мета-података и то за одређене датуме (у овом примеру старије од 01/01/2017) из неке колоне у табели користећи query услов и после те исте податке импортовати код другог Оracle корисника односно под другом шемом.
Ако ће табеле бити у различитим tablespace-овима или треба да се подаци додају на постојеће ако табела већ постоји – имате доле синтаксу за то. Не користимо CONTENT=DATA_ONLY јер у том случају табела не може бити креирана у другој шеми јер нисмо експортовали њену дефиницију (ово је употребљиво само за импорт у већ постојеће табеле)
Због лакше манипулације користићемо варијабле и све радимо на Линуксу.
#################################### ########### ВАРИЈАБЛЕ ############## SOURCE_KORISNIK="kompjuteras" SOURCE_LOZINKA="kompjuteras_pass" SOURCE_TABELA_ZA_EXPORT="some_table" SOURCE_KOLONA_SA_DATUMOM="table_date" DESTINATION_KORISNIK="other_user" DESTINATION_LOZINKA="other_user_pass" DATAPUMP_FOLDER="DIR_FOR_EXPORT" #################################### # Експортуј само податке из табеле али и дефиницију табеле # (да би могла да буде креирана у другој шеми) expdp ${SOURCE_KORISNIK}/${SOURCE_LOZINKA} \ tables=${SOURCE_TABLE_FOR_EXPORT} \ directory=${DATAPUMP_FOLDER} \ query=${SOURCE_TABLE_FOR_EXPORT}:\"where ${SOURCE_TABLE_DATE_COLUMN_NAME} \< \'01-JAN-2017\'\" \ dumpfile=`date +%Y-%m-%d`_${SOURCE_TABLE_FOR_EXPORT}.dmp \ logfile= `date +%Y-%m-%d`_${SOURCE_TABLE_FOR_EXPORT}.export.log \ exclude=constraint,index,trigger,statistics,grants # Импортуј податке у табелу под другим корисником impdp ${DESTINATION_USER}/${DESTINATION_PASSWORD} \ directory=${DATAPUMP_FOLDER} \ dumpfile=`date +%Y-%m-%d`_${SOURCE_TABLE_FOR_EXPORT}.dmp \ logfile= `date +%Y-%m-%d`_${SOURCE_TABLE_FOR_EXPORT}.import.log \ tables=${SOURCE_TABLE_FOR_EXPORT} \ REMAP_SCHEMA=${SOURCE_KORISNIK}:${DESTINATION_USER} # по потреби REMAP_TABLESPACE=SOURCE_TABLESPACE:DESTINATION_TABLESPACE # по потреби TABLE_EXISTS_ACTION=APPEND