Oracle快速导入数据工具
sqlldr是oracle自带的快速导入批量数据的工具,常用于性能测试。考虑手工构造控制文件较为繁琐,因此使用脚本完成批量数据的自动导入。
基本知识
sqlldr命令语法
sqlldr dbname/dbpassword@oracle_sid control=control.ctl log=sqlldr.log bad=sqlldr.bad
选项介绍
1、control 控制文件:包含导入数据和表的信息 2、log 日志文件:导入过程中的日志记录 3、bad 失败文件:导入失败的数据记录 4、rows 每次提交记录数 5、bindsize 每次提交记录的缓冲区大小 6、direct 使用直接路径导入,默认为false 7、parallel 并行导入
控制文件格式
load data infile 'datafile' append into table tablename fields terminated by '|' ( col1, col2 )
设计思路
核心是创建sqlldr导入使用的控制文件
1、从USER_TAB_COLUMNS表中获取输入的欲导入数据标的表结构属性(列名和类型);
2、对DATE和TIMESTAMP类型进行转换,完成sqlldr要求的控制文件格式。
3、调用sqlldr命令执行自动导入数据。
脚本使用
1、下载代码:loadOradata.sh,上传到oracle用户任意目录下。
2、登录oracle用户,执行chmod +x loadOradata.sh赋可执行权限。
3、执行./loadOradata.sh 数据库名/数据库密码 待导入的表名 构造生成的数据文件。
说明:建议在导入数据前先备份并清理待导入的表。原因是sqlldr命令的direct=True,,可能会由于存在重复数据导致索引失效。
分类:
测试工具
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义