sql >> Database teknologi >  >> RDS >> Oracle

Hvordan kan jeg lave en batch-indsættelse i en Oracle-database ved hjælp af Python?

Her er, hvad jeg er kommet frem til, som ser ud til at fungere godt (men kommenter venligst, hvis der er en måde at forbedre dette på):

# build rows for each date and add to a list of rows we'll use to insert as a batch 
rows = [] 
numberOfYears = endYear - startYear + 1
for i in range(numberOfYears):
    for j in range(12):
        # make a date for the first day of the month
        dateValue = datetime.date(startYear + i, j + 1, 1)
        index = (i * 12) + j
        row = (stationId, dateValue, temps[index], precips[index])
        rows.append(row)

# insert all of the rows as a batch and commit
ip = '192.1.2.3' 
port = 1521
SID = 'my_sid'
dsn = cx_Oracle.makedsn(ip, port, SID)
connection = cx_Oracle.connect('username', 'password', dsn)
cursor = cx_Oracle.Cursor(connection)
cursor.prepare('insert into ' + database_table_name + ' (id, record_date, temp, precip) values (:1, :2, :3, :4)')
cursor.executemany(None, rows)
connection.commit()
cursor.close()
connection.close()


  1. Oracle Dynamic Pivoting

  2. Sådan opretter du en serverløs GraphQL API til MySQL, Postgres og Aurora

  3. Sådan bruges den samme tidsplan til flere SQL Server Agent-job (T-SQL)

  4. Find afhængigheder i SQL Server:sql_expression_dependencies