Python中Oracle的连接、增删改查

1、下载格式为whl的cx_Oracle文件

文件名:cx_Oracle‑7.3.0‑cp37‑cp37m‑win_amd64.whl   注意对应cp版本(python版本)

下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#cx_oracle 下载到 D:\software

安装步骤:

1)打开anaconda下的Anaconda3 Prompt;

2)更改路径为刚下载的whl文件的文件夹地址:

3)开始安装:命令,pip install cx_Oracle-5.3+oci12c-cp36-cp36m-win_amd64.whl(conda install会提示无法找到)

附pip和conda 安装本地包命令

pip 安装本地包
pip install ~/Dowloads/torch-0.2.0.post3-cp35-cp35m-manylinux1_x86_64.whl

conda 安装本地包
conda install --use-local pytorch-0.4.0-py35_cuda8.0.61_cudnn7.1.2_1.tar.bz2

之后我们list命令执行一下

发现cx-oracle 已在learn环境下安装完成。回到pycharm写入连接oracle代码,报错:

cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "The specified module could not be found".

出现这个问题首先检查下你的客户端是否为64位,如果正常,则可能是缺少dll文件(如下图)。将上一篇下载的Oracle Instant Client文件夹下所有.dll 文件到D:\software\anaconda和D:\software\anaconda\Lib\site-packages文件夹下(你的anaconda 目录)

这时回到pycharm运行下面代码:

import cx_Oracle

#connect参数  用户名、密码、host地址:端口、服务名
conn = cx_Oracle.connect('MOA/moa@17.37.63.87:1521/orcl') 
print("连接成功")
curs = conn.cursor()
sql = 'select * from JJFX_SSGQ_KPI'
curs.execute(sql)
for result in curs:
    print(result)
curs.close()
conn.close()

成功连接并输出查询结果。

常见的增删改查代码示例:

import cx_Oracle

conn = cx_Oracle.connect('MOA/moa@17.87.23.37:1521/orcl')
#或conn = cx_Oracle.connect('MOA','moa','17.87.23.37:1521/orcl')
#使用sysdba角色连接
# conn = cx_Oracle.connect('MOA','moa','17.87.23.37:1521/orcl',mode=cx_Oracle.SYSDBA)
curs = conn.cursor()
print("连接成功")
#1 查询
curs.execute('select * from JJFX_SSGQ_GQKPI')
for result in curs:
    print(result)
#2 查询全部fetchall
curs.execute('select * from JJFX_SSGQ_GQKPI')
print(curs.fetchall())
#3 查询单个
curs.execute('select * from JJFX_SSGQ_GQKPI')
while 1:
    res = curs.fetchone()
    if res == None:
        break
    print(res)
#4 查询多个
# 10个10个输出
curs.execute('select * from JJFX_SSGQ_GQKPI')
resCount=0
while 1:
    res = curs.fetchmany(10)
    if res == []:
        break
    print(res)
    resCount += 10
#5 参数查询
curs.execute('select * from JJFX_SSGQ_GQKPI where QYNAME = :1',('华数传媒',))
curs.execute('select * from JJFX_SSGQ_GQKPI where QYNAME = :qyname',qyname='华数传媒')
print(curs.fetchall())

#6 插入
curs.execute('insert into JJFX_SSGQ_GQKPI values(2019,12,:1,:2,0,0,0,0,0,0)',('000156','华数传媒'))  #sql中使用参数
conn.commit()

#7 修改
curs.prepare('update JJFX_SSGQ_GQKPI set MONTH=:month where qycode=:qycode')
curs.execute(None,{'month':12,'qycode':'000156'})
#使用了prepare函数,在execute里面可以不传入sql语句,直接传入参数。
# 注意:这里的第一个参数必须为None
conn.commit()

#8 执行多条语句
list1 = [('000411','英特集团'),('000607','华媒控股')]
# list1 = [{'qycode':'000411','qyname':'英特集团'},{'qycode':'000607','qyname':'华媒控股'}]
# curs.prepare('insert into JJFX_SSGQ_GQKPI values(2019,12,:qycode,:qyname,0,0,0,0,0,0)')
curs.prepare('insert into JJFX_SSGQ_GQKPI values(2019,12,:1,:2,:3,0,0,0,0,0,0)')
curs.executemany(None,list1)#第一个参数必须为None
conn.commit()

#9 删除
sql = "DELETE FROM JJFX_SSGQ_GQKPI t WHERE t.qycode = :qycode "
curs.prepare(sql)
rown = curs.execute(None, {'qycode' : '000607'})
conn.commit()

curs.close()
conn.close()

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C语言可以通过调用API来连接数据库进行增删改查操作。 一般常用的数据库有MySQL、Oracle、SQL Server等。以下以MySQL为例来说明: 1. 安装MySQL C连接器 要连接MySQL数据库,需要先安装MySQL C连接器,在Ubuntu Linux环境下,使用以下命令安装:sudo apt-get install libmysqlclient-dev 2. 连接MySQL数据库 在连接MySQL数据库之前,需要先定义一个MYSQL结构体来存储连接信息,例如: MYSQL mysql; mysql_init(&mysql); mysql_real_connect(&mysql, "localhost", "root", "root", "testdb", 0, NULL, 0); 其, "localhost"是MySQL服务器的IP地址,"root"是MySQL服务器的用户名, "root"是MySQL服务器的密码,"testdb"是要连接的数据库名。 3. 增加数据 使用MySQL的C API可以很方便地执行增删改查操作,以下是一个添加数据的例子: char query[1000]; sprintf(query, "insert into student(name, age) values('%s', %d)", "张三", 18); mysql_query(&mysql, query); 其,%s和%d是占位符,可以用具体的值去替换。这里是将一个名为“张三”的学生信息添加到名为“student”的表。 4. 删除数据 与增加数据类似,删除数据也很简单。以下是一个删除数据的例子: char query[1000]; spintf(query, "delete from student where id=%d", 3); mysql_query(&mysql, query); 其,id=3的学生将被删除。 5. 修改数据 以下是一个修改数据的例子: char query[1000]; sprintf(query, "update student set name='%s' where id=%d", "李四", 4); mysql_query(&mysql, query); 其,id=4的学生的姓名将被修改为“李四”。 6. 查询数据 以下是一个查询数据的例子: char query[1000]; sprintf(query, "select * from student"); mysql_query(&mysql, query); MYSQL_RES *result = mysql_store_result(&mysql); int num_fields = mysql_num_fields(result); MYSQL_ROW row; while ((row = mysql_fetch_row(result))) { for (int i = 0; i < num_fields; i++) { printf("%s ", row[i] ? row[i] : "NULL"); } printf("\n"); } 以上是一个简单的查询数据的例子,它将名为“student”的表的所有记录都输出到控制台上。 总结 通过MySQL C API,可以在C语言方便地连接MySQL数据库,并对其进行增删改查操作。这种方式比较灵活,但是比较底层,需要编写大量的代码来实现相对比较简单的操作。对于一般的应用程序,可以考虑使用ORM框架来简化代码编写。 ### 回答2: 连接数据库并进行增删改查是数据库应用的基础操作,以下是一个简单的步骤如下: 1. 安装数据库:首先需要安装合适的数据库服务,比如MySQL、Oracle、SQLServer等等。安装完毕后启动数据库服务。 2. 连接数据库:在启动数据库服务后,使用编程语言(如Java、Python、C#等等)提供的API接口连接到数据库。 3. 编写数据操作代码:连接数据库后,可以对数据库进行数据查询、数据插入、数据更新、数据删除等等操作。编写代码时需要使用SQL语句或ORM框架。 4. 运行代码:将编写好的代码运行程序,程序将会连接到数据库并执行指定的数据操作。 5. 验证结果:程序执行完成后,可以查看操作是否执行成功,在数据库查看对应的数据是否已经操作成功。 需要注意的是,每个数据库软件有不同的连接串、驱动及API,具体使用方法需要参考各自的API文档。此外,为了保证数据的安全性,从编写数据操作代码到运行代码,要确保代码没有漏洞,防止黑客利用SQL注入等攻击获取数据,这是数据库应用开发者需要注意的问题。 ### 回答3: 在进行数据库操作之前,我们需要先通过编程语言提供的库或框架连接到数据库。在c语言,我们可以使用MySQL自带的C API或第三方库,如libmysqlclient等。 连接数据库的步骤一般为:初始化MySQL库、获取连接句柄、设置连接选项、建立连接等。连接成功后,就可以进行增删改查操作了。 增加数据可以使用SQL语句INSERT INTO,将新数据插入到指定的表。 删除数据可以使用SQL语句DELETE FROM,将指定条件的数据从表删除。 修改数据可以使用SQL语句UPDATE,根据指定条件修改表的数据。 查询数据可以使用SQL语句SELECT,根据条件查询的数据,并将结果返回给程序处理。 通常是先在c程序构造SQL语句,再通过MySQL提供的函数进行执行和处理结果。需要注意的是,在进行数据库操作时应充分考虑数据安全问题,如避免SQL注入攻击等问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值