暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Python操作数据库之cx_Oracle

工科学渣要逆袭 2021-04-20
1262


Oracle和SQLite就不一样了,需要服务端和客户端,且只能支持11g及以后的版本。


Oracle是收费的,新版的MySQL也一样,而且很贵很贵很贵,嗯。我等穷人自然是玩不起的。现在一些Linux发行版也不再安装Mysql,而是改用了MariaDB。(MariaDB和MySQL出自同一位大佬,当初Mysql卖给了甲骨文,他就担心会变成收费版,所以新创建了MariaDB)



虽然玩不起,但是对于有实际业务需要的人,还是可以一看。首先服务器端就不说的,我也没法演示。作为运行Python程序的本机,自然是安装客户端了。



Python操作Oracle数据库的包是第三方的cx_Oracle,也就是说需要通过pip进行安装,由于我本地已经安装了,所以建立一个虚拟环境测试下安装过程。


    D:\>python -m venv venv
    D:\>cd venv\Scripts
    D:\venv\Scripts>activate
    (venv) D:\venv\Scripts>pip install cx_Oracle


      >>> import cx_Oracle  #没有发生异常


      退出虚拟环境

        >>> exit()
        (venv) D:\venv\Scripts>deactivate.bat
        D:\venv\Scripts>


        前面说过,连接数据库基本都符合DB API 2.0协议,所以连接Oracle也是这个过程。



        不过SQLite是建立于本地的文件,所以对访问方式类似于open()操作,Oracle是需要通过本地客户端连接远端服务器,所以connect方式自然有所不同。


        接触过相关内容的会知道连接数据库需要知晓tns设定,并把服务器host,端口等信息加入到tnsnames.ora文件内,才能正确访问。


        连接数据格式如下

          connect = cx_Oracle.connect("username/password@host:port/service_name")


          剩下的,创建新游标connect.cursor(),cursor.execute(),cursor。fetch(),cursor.close(),connect.close()等等则是大同小异。


          由于Oracle的使用场景一般服务于大型机构,且对数据安全有很高的要求,主要还是得有钱。


          公司的Oracle不管是正式环境还是测试环境,都属于数据保密,所以就没有实际演示的部分。


          创作不易,请大家多多关注、点赞、在看三连支持,谢谢~~


          文章转载自工科学渣要逆袭,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

          评论