cx_Oracle操作分装失败版

#!/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()







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值