#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Time : 2018/9/12 12:00
# @Author : Yang Wenfei
# @File : nps_Oracle.py
# @Software: IntelliJ IDEA
import cx_Oracle
#import os
#os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
class nps_Oracle:
"""
select/insert/update/delete/create/drop oracle database
"""
def __init__(self,uname='nps',passwd='',host='10.161.97.184',port='1521',sname='orcl'):
self.uname = uname
self.passwd = passwd
self.host = host
self.port = port
self.sname = sname
self.conn = None
self.initconn()
def initconn(self):
if not self.conn:
self.conn = cx_Oracle.connect(self.uname, self.passwd, self.host + ':' + self.port + '/' + self.sname)
def getCur(self):
if self.conn.cursor():
return self.conn.cursor()
else:
print("##Error# Get New Cursor Failed!")
return None
def closeCur(self, cur):
if cur:
cur.close()
def close(self):
if self.conn:
self.conn.close()
def commit(self):
self.conn.commit()
def execSql(self,sql):
cursor = self.getCur()
# firstLetter = sql.strip()[0]
# if firstLetter == 's' or firstLetter == 'S':
# return cursor.execute(sql)
# else:
return cursor.execute(sql)
def createTable(self,tableName,colAndType):
sql = 'CREATE TABLE ' + tableName + '(' + colAndType + ')'
self.execSql(sql)
def dropTable(self,tableName):
sql = 'DROP TABLE ' + tableName
self.execSql(sql)
def select(self, cols,tablename,conditions=None):
sql = 'SELECT ' + cols + ' FROM ' + tablename
if conditions:
sql += ' ' + conditions
resCur = self.execSql(sql)
return resCur
def insert(self,tableName,cols=None,values=None,conditions=None):
sql = 'INSERT INTO ' + tableName
if values:
if cols:
if conditions:
sql += '(' + cols + ')' + ' values(' + values + ') ' + conditions
else:
sql += '(' + cols + ')' + ' values(' + values + ') '
else:
if conditions:
sql += ' values(' + values + ') ' + conditions
else:
sql += ' values(' + values + ') '
else:
if cols:
if conditions:
sql += '(' + cols + ')' + conditions
else:
print('##ERROR# No Values To Insert!')
else:
if conditions:
sql += ' ' + conditions
else:
print('## SQL Syntax Error!')
self.execSql(sql)
def update(self,tableName,colAndValue,conditions):
sql = 'UPDATE ' + tableName + ' SET ' + colAndValue + ' ' + conditions
self.execSql(sql)
def delete(self,tableName,conditions):
sql = 'DELETE FROM ' + tableName + ' ' + conditions
self.execSql(sql)
if __name__ == '__main__':
db = nps_Oracle()
# db.createTable('table_a','name varchar2(20),id number')
db.createTable('table_b','name varchar2(20),id number')
# print(db.select('*','table_a').fetchall())
# print(db.select('*','scene_element','where rownum<=10').fetchall())
# print(db.execSql('select * from scene_element where rownum<=10').fetchone())
db.close()
cx_Oracle操作分装失败版
最新推荐文章于 2023-10-25 15:19:32 发布