Python is a popular general purpose dynamic scripting language. With the rise of Frameworks, Python is also becoming common for Web application development. If you want to use Python and an Oracle database, this tutorial helps you get started by giving examples.

Prerequisites: 

  1. Install python language
  2. Download & Configure Oracle Instant Client 11G R2 from Oracle.com
  3. Download cx_Oracle 5.0.4
  4. Open python
    • pip install cx_Oracle
    • pip install openpyxl
from sys import modules
import openpyxl
import cx_Oracle


cnx = cx_Oracle.connect('username/password@dbname:1521/SID')
cursor = cnx.cursor()


TABLES = {}
TABLES['employees'] = (
"CREATE TABLE employees ( col1 int, col2 varchar2(20))"
)
TABLES['ITEM'] = (
"CREATE TABLE ITEM ( ID NUMBER(15,0) NOT NULL ENABLE,"
"ITEM_ID VARCHAR2(4) NOT NULL ENABLE,"
"NAME VARCHAR2(4) NOT NULL ENABLE,"
"PRODUCT VARCHAR2(5) NOT NULL ENABLE,"
"CUST_ID VARCHAR2(8) NOT NULL ENABLE,"
"CUST_NAME VARCHAR2(50) NOT NULL ENABLE,"
"LAST_CHG_DATETIME DATE NOT NULL ENABLE,"
"LAST_CHG_OPER VARCHAR2(30) NOT NULL ENABLE,"
"CONSTRAINT SITE_PK PRIMARY KEY (ITEM_ID) USING INDEX ENABLE ) TABLESPACE DATA"
)
TABLES['CUSTOMER'] = (
"CREATE TABLE CUSTOMER( CUST_ID NUMBER(15,0) NOT NULL ENABLE,"
"CUST_ID NUMBER(13,0) NOT NULL ENABLE,"
"ITEM_ID NUMBER(15,0) NOT NULL ENABLE,"
"LAST_CHG_DATETIME DATE NOT NULL ENABLE,"
"LAST_CHG_OPER VARCHAR2(30) NOT NULL ENABLE,"
"CONSTRAINT CUST_PK PRIMARY KEY (CUST_ID) USING INDEX ENABLE TABLESPACE DATA"
)

#cursor.close

for table_name in TABLES:
table_description = TABLES[table_name]
try:
print("Creating table {}: ".format(table_name), end='')
cursor.execute(table_description)
except cx_Oracle.connector.Error as err:
if err.errno == errorcode.ER_TABLE_EXISTS_ERROR:
print("already exists.")
else:
print(err.msg)
else:
print("OK")

cursor.close()
cnx.close()

Leave a comment