关于超长字符串/文本对应的数据从excel导入到PL/SQL中的尝试

问题:

1.字符串太长

2.str绑定之的结尾null缺失

将csv文件导入到PL/SQL表中存在的一些问题

1.本来我是需要将exceL上的几十条数据导入到PL/SQL数据库的一张表中,结果我花了许多时间

去导入。 想想一般情况下也就几十条数据,直接复制粘贴就行了。但是我将excel,xlsx上的数据

复制到PL/SQL表中时,报错,

这是表

将超过4000个byte的字符串往varchar2(4000)直接粘贴会报错, 同时使用insert into 也会报错

insert into报错字符串文字太长,原因是因为varchar2(4000)最多接受不超过4000字节长度的字符串。

如果你复制的字符串长度在2000左右,复制粘贴依然会报str绑定之的结尾null缺失,但是使用insert into就没有问题,猜测可能是复制粘贴时的缓冲区最多容纳不超过2000左右的字节。而insert into则可以接纳不超过4000左右的字节。

同理,对于clob类型而言,虽然clob在复制粘贴时不会受到字节长度的限制。但是在INSERT INTO

时, clob会自动把类型转换为varchar2(4000)类型,也就是clob字段使用insert into时也会限制字节数不超过4000, 而如果手动粘贴复制时,则不存在限制4000字节的问题。这跟varchar2()类型的字段刚好在2000-4000字节的字符串导入数据时相反。 解决超长文本的字符串导入到PL/SQL表时,首先如果大于4000字节,需要用到CLOB类型。 然后因为文本的字符串长度过长,首先可以手动复制粘贴,其次。 如果想用代码来导入,需要参考下面的文章

Oracle 解决【ORA-01704:字符串文字太长】_oracle_paigujing-华为开发者空间 (csdn.net)

绑定变量的方式,来导入长度超过4000的数据。 最后在做数据的导入时, 因为一条一条的复制粘贴比较费力,所以参考了网上的一些python脚本代码,然后丢给chatgpt,让它编写成可以用来导数用的脚本,将xlsx/csv文件读取然后生成一条一条可以执行的sql,在PL/SQL中执行。

因为想了好久,也不能在python脚本中将读取到的CLOB类型长文本数据变成可以全部保留数据的格式生成对应的sql代码,所以我选择了截取不超过4000的部分的数据来生成INSERT INTO代码, 然后再去PL/SQL上执行SQL, 然后看看那些有被截取, 被截取的我在手动的复制粘贴补充完整。 目前还没有发现解决方法,这也是个bug,如果能用python全部一字不差的读取,那么估计也能实现自动化了。

相关推荐
HackTwoHub7 小时前
AI大模型网关存在SQL注入、附 POC 复现、影响版本LiteLLM 1.81.16~1.83.7(CVE-2026-42208)
数据库·人工智能·sql·网络安全·系统安全·网络攻击模型·安全架构
l1t7 小时前
DeepSeek总结的DuckLake构建基于 SQL 原生表格式的下一代数据湖仓
数据库·sql
KmSH8umpK7 小时前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第八篇
数据库·redis·分布式
TDengine (老段)8 小时前
从施工监测到运营预警,桥科院用 TDengine 提升桥梁数据管理能力
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
S1998_1997111609•X9 小时前
论mysql国盾shell-sfa犯罪行为集团下的分项工程及反向注入原理尐深度纳米算法下的鐌檵鄐鉎行为
网络·数据库·网络协议·百度·开闭原则
KmSH8umpK10 小时前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第七篇
数据库·redis·分布式
yaodong51811 小时前
不会Python也能数据分析:Gemini 3.1 Pro解决办公问题的SQL自动生成
python·sql·数据分析
BU摆烂会噶11 小时前
【LangGraph】持久化实现的三大能力——时间旅行
数据库·人工智能·python·postgresql·langchain
l1t12 小时前
DeepSeek总结的DuckLake 入门
数据库
Joseph Cooper12 小时前
RAG 与 AI Agent:智能体真的需要检索增强生成吗?
数据库·人工智能·ai·agent·rag·上下文工程