init
This commit is contained in:
38
python/mrds_common/mrds/utils/oraconn.py
Normal file
38
python/mrds_common/mrds/utils/oraconn.py
Normal file
@@ -0,0 +1,38 @@
|
||||
import oracledb
|
||||
import os
|
||||
import traceback
|
||||
import sys
|
||||
|
||||
|
||||
def connect(alias):
|
||||
|
||||
username = os.getenv(alias + "_DB_USER")
|
||||
password = os.getenv(alias + "_DB_PASS")
|
||||
tnsalias = os.getenv(alias + "_DB_TNS")
|
||||
connstr = username + "/" + password + "@" + tnsalias
|
||||
|
||||
oracledb.init_oracle_client()
|
||||
|
||||
try:
|
||||
conn = oracledb.connect(connstr)
|
||||
return conn
|
||||
except oracledb.DatabaseError as db_err:
|
||||
tb = traceback.format_exc()
|
||||
print(f"DatabaseError connecting to '{alias}': {db_err}\n{tb}", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
except Exception as exc:
|
||||
tb = traceback.format_exc()
|
||||
print(f"Unexpected error connecting to '{alias}': {exc}\n{tb}", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def run_proc(connection, proc: str, param: []):
|
||||
curs = connection.cursor()
|
||||
curs.callproc(proc, param)
|
||||
|
||||
|
||||
def run_func(connection, proc: str, rettype, param: []):
|
||||
curs = connection.cursor()
|
||||
ret = curs.callfunc(proc, rettype, param)
|
||||
|
||||
return ret
|
||||
Reference in New Issue
Block a user