我正在尝试使用cx_Oracle 6.3将大量BLOB(每个2到20 MB)插入到Oracle 12中.

经过大量的谷歌搜索和实验,我得到了以下代码.我是Python的新手,想知道:这种方法有效吗?有更快的方法吗?

#!/usr/local/bin/python3

import io

import os

import cx_Oracle

pdf = open('hello.pdf', 'rb')

mem_file = io.BytesIO(pdf.read())

mem_file.seek(0, os.SEEK_END)

file_size = mem_file.tell()

con = cx_Oracle.connect("user", "***", "localhost:1512/ORCLPDB1", encoding="UTF-8")

# create table for this example

con.cursor().execute("CREATE TABLE t (id NUMBER, b BLOB) LOB(b) STORE AS SECUREFILE(COMPRESS)");

# prepare cursor

cursor = con.cursor()

my_blob = cursor.var(cx_Oracle.BLOB, file_size)

my_blob.setvalue(0, mem_file.getvalue())

# execute insert

cursor.execute("INSERT INTO t(id, b) VALUES (:my_id, :my_blob)", (1, my_blob))

con.commit()

con.close()

如何插入EMPTY_BLOB()并在以后进行更新?在插入之前计算BLOB的大小是否有必要/有益?

解决方法:

你可以做一些更简单的事情,这也会快得多.请注意,只有当您能够将整个文件内容存储在连续内存中并且当前硬限制为1 GB时,此方法才有效,即使您有多TB的可用内存!

cursor.execute("insert into t (id, b) values (:my_id, :my_blob)",

(1, mem_file.getvalue())

插入empty_blob()值并返回LOB定位器以供以后更新比创建临时LOB并插入它(正如您在代码中所做的)更快,但直接插入数据更快!

标签:python,oracle,blob,cx-oracle

来源: https://codeday.me/bug/20191003/1849482.html

python oracle blob_如何使用Python将BLOB插入Oracle?相关推荐

  1. python oracle blob_如何用python在oracle中插入blob?

    我正在尝试使用cx_oracle 6.3在oracle 12中插入许多blob(每个2到20 MB). 经过大量的搜索和实验,我得到了以下代码工作.我是python新手,想知道:这种方法有效吗?有更快 ...

  2. Oracle+Python适合 Oracle DBA 使用的 Python

    传统上,当需要为操作系统编写一些脚本时,人们常常会选用 Bash 或 Perl 脚本工具.这些工具易于使用,因而它们几乎变得无处不在,渗透到了包括 Oracle Database 在内的其他软件中,O ...

  3. python使用pandas基于时间条件查询多个oracle数据表

    python使用pandas基于时间条件查询多个oracle数据表 目录 python使用pandas基于时间条件查询多个orcale数据表 #orcale数据连接

  4. python连接oracle数据库_深入理解Python3.6连接Oracle数据库

    Python3.6连接Oracle数据库的方法详解 本文实例讲述了Python3.6连接Oracle数据库的方法.分享给大家供大家参考,具体如下: 下载cx_Oracle模块模块: https://p ...

  5. python excel导入oracle数据库_【Python代替Excel】12:Python操作oracle数据库

    日常工作中,如果有数据库权限,那么在oracle中提取数据.在Python中处理是比较方便的.Python也提供了一个库专门操纵数据库.今天就专门来讲讲如何在Python中操作数据库. 准备工作 需要 ...

  6. oracle数据导入到python,Python导入oracle数据的方法 -电脑资料

    作者:Sephiroth 字体:[增加 减小] 类型:转载 这篇文章主要介绍了Python导入oracle数据的方法,涉及Python读取csv文件信息再插入到Oracle数据库的相关技巧,具有一定参 ...

  7. python oracle连接池_python - DBUtils 连接池减少oracle数据库的连接数

    问题: 接到需求,告知项目的oracle连接次数过多,对系统造成太过大的负担,要求减少oracle数据库的连接次数 分析: 仔细分析代码以后,发现产生问题的原因,在于之前要求提升oracle监控的监控 ...

  8. python连接本机oracle数据库吗,用Python连接Oracle数据库容易吗?

    ello,大家好!本次介绍的内容是如何使用Python连接Oracle数据库!看起来很简单,但实际上就是这么简单.学习本节内容后,相信老铁们能用Python撸起你们那庞大的Oracle数据库了.Wel ...

  9. 从Oracle读取数据并用python处理过程记录(构建BARRA因子遇到的问题)

    第一次用pycharm运行python语句,第一次从Oracle读数据,出现了无数的bug..把过程记录一下以提升效率 1.数据读取并处理成dataframe格式:用逐行查询的方式 import cx ...

最新文章

  1. 由于未能创建 Microsoft Visual C# 2008 编译器,因此未能打开项目 ...的解决方法...
  2. 【转载】PHP 常用的header头部定义汇总
  3. 临河天气预报软件测试,临河天气预报15天
  4. 在 .NET Core 5 中集成 Create React app
  5. java 永久代_Java新生代、老生代和永久代详解
  6. linux.命令格式,【Linux基础知识】Linux命令格式介绍
  7. java基础类与对象_Java基础---类与对象
  8. Hive入门学习随笔(一)
  9. 线程池与Threadlocal
  10. 学会这一方法,轻松实现Excel批量转PDF,快来码住
  11. 三种碎片化方法:RECAP, BRICS与eMolFrag
  12. html盒子移动动画代码,js实现盒子滚动动画效果
  13. 系分 - 案例分析 - 需求分析
  14. 宏碁笔记本u盘装系统如何进入bios设置u盘启动图文教程
  15. python新闻聚合_基于Python的新闻聚合系统网络爬虫研究
  16. 计算机基础知识图谱,基于知识图谱的大学计算机基础习题推荐方法技术
  17. python No handlers could be found for logger错误的解决
  18. OSChina 周六乱弹 ——对!今天全是妹子!
  19. 【java多种方式实现计时器】时分秒毫秒,附带代码+运行截图
  20. FFMPEG基本操作命令指南(一)

热门文章

  1. 电商加速进入“拼”时代
  2. 什么是.NET Native?
  3. 一起学英语第三季第五集
  4. Ubuntu分区方案——如何科学的规划
  5. 计算机硬件基础知识总结(一 )
  6. html网页漂浮广告原理js,js实现广告漂浮效果的小例子
  7. python判断一个文件夹里面是否为空_Python碎片化学习教程 @8. 判断目标文件夹是否为空...
  8. Android自定义View:MeasureSpec的真正意义与View大小控制 1
  9. mac_QuickTime Player播放视频
  10. iPhone 6S展示了玫瑰金颜色和3D触摸功能