最近连接公司oracle数据库取一些数据,发生很多问题,这里做下记录
如果公司已经配置好了ServiceName,那么就不需要IP和Port, 因为可以自动解析出来
Oracle Net 工具(命令)tnsping,是一个OSI会话层的工具,它用来:
1)验证名字解析(name resolution,当然是oracle自己的网络服务名)
2)远程的listener是否启动
tnsping解析成功代表tnsnames.ora,ip地址,tns_admin变量配置正确,服务端监听程序ok
一。首先确保dsn是通的,假如ServiceName是 MESEA, 打开命令窗口输入
tnsping MESEA, 如果得到下图表示没问题!这个如果通不过,连接数据库时可能会报listener错误
二。下面是一段简单的连接数据库并获取数据程式:
import cx_Oracle
#conn = cx_Oracle.connect('EDAVIEWER/EDAVIEWER123@MESEA')
conn = cx_Oracle.connect(user='EDAVIEWER',password='xxx',dsn='MESEA')
cursor = conn.cursor()
ret = cursor.execute("""SELECT * FROM LCDSYS.ARRAY_PDS_GLASS_SUMMARY_T
WHERE param_name = 'H3PO4' AND param_collection='G52' AND sub_equip_id = '1AWEG030'
AND step_id IN ('2350','1350')
AND glass_start_time BETWEEN TO_DATE('2018/09/01 00:00:00','yyyy-MM-dd hh24:mi:ss')
AND TO_DATE('2018/09/10 00:00:00','yyyy-MM-dd hh24:mi:ss') """)
print("ok")
print(ret)
i = 0
for item in ret:
if i < 10:
print(i,item)
i+=1
#mm = ret.fetchone()
cursor.close()
conn.close()
#获取时间
#print(mm[4])