python3.0使用cx_Oracle模块操作oracle数据库

需要的环境

python、cx_Oracle第三方模块、orcale数据库

python-cx_oracle报错

python-cx_oracle报错"DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded: "

解决办法:https://blog.csdn.net/yuzh_test/article/details/78898159

python连接oracle数据库分以下步骤

1、与oracle建立连接;

2、获取游标;

3、执行sql语句;

4、fetch查询结果或commit修改结果;

5、关闭游标;

6、关闭oracle连接。

基本使用

import cx_Oracle   # 导入模块

class perform_orcale(object):
    def __init__(self):
        self.conn = cx_Oracle.connect("用户名/密码@服务器地址/服务器名")  # 连接orcale数据库方法1
        # self.conn =cx_Oracle.connect('用户名','密码','服务器地址/服务器名') # 方法2,选择一种
        self.cursor = self.conn.cursor()  # 设置游标

    def excute_sql(self):       
        pr = {"djxh":"122322"}  # sql语句的参数
        my_sql = """select * from my_table where djxh=:djxh"""  # sql语句,后面带参数
        cursor.execute(my_sql,pr)  # 执行sql语句

    def commit(self):
         self.conn.commit()

    def perform_result(self):
        result = cursor.fetchall()  # 取得执行结果
        for r in result:   # 遍历执行结果
            print(r)

    def close(self):
        self.cursor.close()
        self.conn.close()


if __main__ == "__name__":
    test_orc = perform_orcale()

仅用于查询获得结果

fetchall() :获取所有结果集,返回元祖列表,如果没有有效行,返回空列表。

fetchone() :从数据库中取单个元祖,如果没有有效数据返回none。

其它用法参考(很全)

https://www.cnblogs.com/daisy89/p/5307727.html

使用过程中的疑点

在用 cx_Oracle 查询数据库的时候,有的时候查询出来的结果数字精度会莫名其妙的不对劲儿,例如,数据库中存的是 1503.87 ,字段类型为 number(18,2),而通过 cx_Oracle 查询出来的结果却是 1503.8700000000001

猜你喜欢

转载自blog.csdn.net/loner_fang/article/details/81536393