python操作oracle数据库的另类方法

python 通过oracle instant clients访问数据库似乎没有好的方法。本文中直接通过操控进程sqlplu.exe进行数据库的写入。

#-------数据库----------
db_user="User2"    #用户名称
db_password="D9"  #用户密码
db_ip="211.74.34.23"
db_port="1521"
db_tnsname="erporcl"   #TNSNAME
table_name="TTTabele"    #表名称
#sqlplus path
sqlplus_path=r"D:\Oracle\Instant Client\bin"
def runQuery(s):
    from subprocess import Popen, PIPE, STDOUT
    cmd="/sqlplus %s/%s@%s:%s/%s" % (db_user,db_password,db_ip,db_port,db_tnsname)
    cmd = sqlplus_path+cmd
    p = Popen(cmd, stdout=PIPE, stdin=PIPE, stderr=STDOUT)
    serialno=readserialno()
    cmdsql="insert into %s(SerialNo,Data,Status) values(%d,'%s','N');\n" % (table_name,serialno,s)
    print cmdsql
    out = p.communicate(input=cmdsql)[0]
    print out
    return
运行界面如下:
python操作oracle数据库的另类方法_第1张图片

你可能感兴趣的:(oracle,数据库,python,subprocess)