首先需要安装cx_Oracle这个库,使用pip命令即可:
pip install cx_Oracle
- 与Oracle数据库的连接:
import cx_Oracle
conn = cx_Oracle.connect('用户名/密码@IP:端口/数据库名称') #端口一般就是1521
其中IP和数据库名称与其tnsnames.ora文件如下对应:
服务名 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = IP(如:10.2.168.1))(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = 数据库名称)
)
)
- 查询语句
import cx_Oracle
conn = cx_Oracle.connect('user/[email protected]:1521/TESTGRPDB')
cur = conn.cursor()
sql_search = 'select * from hsquotedata where stockcode=\'%s\'' % (quotedata['code'])
res = cur.execute(sql_search)
display = res.fetchall()
cur.close()
conn.close()
- 插入语句
import cx_Oracle
conn = cx_Oracle.connect('user/[email protected]:1521/TESTGRPDB')
cur = conn.cursor()
oracle_sql = "insert into hsquotedata values(:1,:2,:3)"
cur.execute(oracle_sql, (quotedata['market'],quotedata['code'],quotedata['name'])) #quotedata是传入的一个字典
cur.close()
conn.commit()
conn.close()
还有另外一种写法:
sql_insert = 'insert into hs_his.his_deliver (init_date, serial_no, curr_time) values(\'%s\', \'%s\', \'%s\')' % (rows[0][0], rows[0][1], rows[0][2])
cur.execute(sql_insert)