python问题
1:在windows下面使用cx_Oracle2.5版本不行,用2.6就好使了2:
ip = '127.0.0.1'
port = 1521
SID = 'aecdb'
try:
dsn_tns = cx_Oracle.makedsn(ip, port, SID)
conn = cx_Oracle.connect('user', 'pwd', dsn_tns)
cursor = conn.cursor()
# 如果需要批量的插入数据,就这样做
# 用 s% 这样的写法有错,也不能使用 select 这样的操作,必须是操作数据型才能用这个函数
sql = "insert into servers (ID,name) values(:1,:2)"
# 每个值的集合为一个tuple,整个参数集组成一个tuple,或者list
param = [('testId1', 'testName1'), ('testId2', 'testName2')]
# 使用executemany方法来批量的插入数据.这真是一个很酷的方法!
r = cursor.executemany(sql, param)
finally:
cursor.close()
conn.commit() # 对数据有改动
conn.close()
cx_Oracle.NotSupportedError: queries not supported: results undefined
这个错是说cx_Oracle不支持executemany函数
原因是cx_Oracle的executemany只支持数据操作型操作,select这样的查询类操作不支持
cx_Oracle.DatabaseError: ORA-01036:
这个异常是因为参数有错,其实就是参数的格式不对,比如
sql = "insert into servers (ID,name) values(%s, %s)"换成
sql = "insert into servers (ID,name) values(:1, :2)"这样就成了
cx_Oracle.connect 报错
Traceback (most recent call last):
如果cursor.close()报错一般都是 cursor 对像为空:
也就是conn = cx_Oracle.connect('user', 'pwd', dsn_tns)这一步没连接上
有可能是用户密码不对,或者权限不够(换ROOT用户执行即可)
页:
[1]