This repository was archived by the owner on Jan 17, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathoradb.py
More file actions
82 lines (67 loc) · 2.33 KB
/
Copy pathoradb.py
File metadata and controls
82 lines (67 loc) · 2.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import cx_Oracle
import configparser
class Oradb(object):
"""Class to abstract dbobject form main module"""
host = None
port = None
sid = None
user = None
password = None
db_connection = None
db_cur = None
dsn = None
def __init__(self, config_file):
super(Oradb, self).__init__()
config = configparser.ConfigParser()
config.read(config_file)
self.host = config['db']['host']
self.port = config['db']['port']
self.sid = config['db']['sid']
self.user = config['db']['user']
self.password = config['db']['passwd']
self.dsn = cx_Oracle.makedsn(self.host, self.port, self.sid)
self.db_connection = cx_Oracle.connect(
self.user, self.password, self.dsn)
self.db_cur = self.db_connection.cursor()
def execute(self, query, params=None):
if params is None:
return self.db_cur.execute(query)
else:
return self.db_cur.execute(query, params)
def fetchall(self):
return self.db_cur.fetchall()
def fetchone(self):
return self.db_cur.fetchone()
def commit(self):
return self.db_connection.commit()
def statement(self):
return self.db_cur.statement()
def description(self):
return self.db_cur.description()
def query_to_dict(self, query, params=None):
if params is None:
self.db_cur.execute(query)
desc = self.db_cur.description
column_names = [col[0] for col in desc]
data = [dict(zip(column_names, row))
for row in self.db_cur.fetchall()]
return data
else:
self.db_cur.execute(query, params)
desc = self.db_cur.description
column_names = [col[0] for col in desc]
data = [dict(zip(column_names, row))
for row in self.db_cur.fetchall()]
return data
def build_list(self, sql_results):
"""Build a standard list from sql results"""
li = []
for r in sql_results:
li.append(r[0])
return li
def list_to_in(self, li):
"""format standard list for use with sql IN statements"""
return ','.join(map("'{0}'".format, li))
def __del__(self):
self.db_cur.close()
self.db_connection.close()