Сохранение данных из 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')
Вернуться на верх