python 通过oracle instant clients访问数据库似乎没有好的方法。本文中直接通过操控进程sqlplus.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
运行界面如下: