Bulk insert to Oracle with Python

Overview

There is an example code to insert data in bulk to Oracle database with python cx_Oracle

Environments

python 3.7.3
Oracle 18c Express Edition

Step1 : Creating the table

Creating the table ‘oracle_insert’ in the schema ‘USER01’.

CREATE TABLE USER01.ORACLE_INSERT(
	col1 int
	,col2 int
	,col3 int
)

Step2 : Insert in bulk with executemany

  • dataset is the dataset to be inserted
  • Making a connection to database with cx_Oracle
  • Inserting in bulk with using cur.executemany()
import cx_Oracle

dataset =[
    [1,2,3]
    ,[4,5,6]
    ,[7,8,9]
    ,[10,11,12]
    ,[13,14,15]
    ,[16,17,18]
    ,[19,20,21]
] 

HOST = 'localhost'
PORT = '1521'
DB_NAME = 'xepd1'
USER = 'user01'
PASSWORD = 'password01'
SERVICE_NAME = 'xepdb1'
 
tns = cx_Oracle.makedsn(HOST, PORT, service_name =SERVICE_NAME)
conn = cx_Oracle.connect(USER,PASSWORD,tns)
cur = conn.cursor()
cur.executemany("insert into user01.oracle_insert (col1, col2, col3) values (:1, :2 ,:3)", dataset)
conn.commit()
conn.close()

Summary

The code to insert some rows in bulk is not difficult and simple. But the performance about it is not tested in here, I’ll try it in future.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *