Сохранение данных из Oracle на sql-сервер с помощью веб-страницы django или скрипта python
Мне нужен короткий и быстрый метод копирования таблицы oracle на sql server, потому что таблицы слишком большие.
У меня есть только одна модель mssql.
models.py
class ReceiveMt_sql(models.Model):
rcv_no = models.CharField(db_column='RCV_NO', max_length=30, blank=True, null=True)
rcv_date = models.CharField(db_column='RCV_DATE', max_length=100, blank=True, null=True)
vendor_code = models.CharField(db_column='VENDOR_CODE', max_length=12, blank=True, null=True)
rcv_invoice = models.CharField(db_column='RCV_INVOICE', max_length=30, blank=True, null=True)
rcv_type = models.CharField(db_column='RCV_TYPE', max_length=1, blank=True, null=True)
paid_unpaid = models.CharField(db_column='PAID_UNPAID', max_length=1, blank=True, null=True)
print_status = models.CharField(db_column='PRINT_STATUS', max_length=1, blank=True, null=True)
user_name = models.CharField(db_column='USER_NAME', max_length=10, blank=True, null=True)
u_id = models.CharField(db_column='U_ID', max_length=15, blank=True, null=True)
mod_date = models.CharField(db_column='MOD_DATE', max_length=100, blank=True, null=True)
width = models.CharField(db_column='WIDTH', max_length=20, blank=True, null=True)
length1 = models.CharField(db_column='LENGTH1', max_length=20, blank=True, null=True)
remarks = models.CharField(db_column='REMARKS', max_length=300, blank=True, null=True)
chtype = models.CharField(db_column='CHTYPE', max_length=50, blank=True, null=True)
general_type = models.CharField(db_column='GENERAL_TYPE', max_length=30, blank=True, null=True)
action = models.CharField(db_column='ACTION', max_length=1, blank=True, null=True)
gate_no = models.CharField(db_column='GATE_NO', max_length=30, blank=True, null=True)
save_date = models.CharField(db_column='SAVE_DATE', max_length=100, blank=True, null=True)
class Meta:
managed = False
db_table = 'RECEIVE_MT'
Этот метод медленный
views.py
class RcvMr(View):
def get(self, request):
cursor = connections['ORACLE'].cursor()
sql = "SELECT * FROM receive_mt WHERE rcv_date>='01-SEP-22'"
stmt = cursor.execute(sql)
rows = [dict((cursor.description[i][0], value) for i, value in enumerate(row)) for row in cursor.fetchall()]
for row in rows:
#get data from row and save it to the model
print(row)
return render(request, 'service.html')