oracle 19 通过 sqlldr导入数据中遇到的问题

oraclesqlldr命令数据导入 一:先创建数据库表:有两种方式  方式一:在数据库客户端创建  方式二:在windows的命令窗口创建,前提是链接上自己电脑上的oracle数据库如下图所示: 二:创建控制文件,以ctl为后缀名,tb_sqlldr.ctl文件放在D盘下面即可(等下执行时会用到相关路径下的控制文件)文件内容如下: 三:导入数据分成四种模式,可以根据需求选择:----控制文件里面 1:APPEND 阅读详情

近期开发了个功能,数据库是用的是oracle 19,需要用到sqlLoader导入数据,开发过程中遇到的问题,记录一下:
ctl文件写好,.dat文件准备好等;

第一
java.io.IOException: Cannot run program "@conn“: error=2,没有那个文件或目录

指向@conn–数据库连接串,认定@conn为一个文件或目录,也是头一回碰到,排查过@conn(username/password@database)的书写是否规范问题,确认无误后;

再去排查服务器:
a.环境变量ORACLE_HOME是否为空;
b.环境变量PATH中是否配置了sqlldr的路径;
c.oracle安装目录bin下是否有sqlldr的可执行文件;

以上abc均正常;

第二
代码中关于data,log,bad等文件的路径正常,本地debug到这行代码直接抛异常,
Process p = Runtime.getRuntime().exec(cmd);

处理方法:
a.在java代码中cmd命令前加“cmd ” --> cmd @conn control=.ctl log= .log bad=.bad;
b.在java代码中cmd命令前加“cmd /C ” --> cmd /C @conn control=
.ctl log= .log bad=.bad;
c.在java代码中cmd命令前加“sqlldr " --> sqlldr @conn control=*.ctl log= .log bad=.bad”;
a和b出现提示: -bash cmd 或则 -bash cmd /C not found;

c的情况出现提示
java.io.IOException: Cannot run program “sqlldr“: error=2,没有那个文件或目录

这里的abc三步,均在本地服务器上调试的

第三
本着不信邪的想法,直接在服务器上执行分别执行上述abc三步的命令,
a和b出现提示: -bash cmd 或则 -bash cmd /C not found;

不一样的是c,
c 命令正常执行,sqlldr @conn control=*.ctl log= .log bad=.bad

心想,我真该si啊,太相信本地的开发环境了,
心想,我真该si啊,太相信本地的开发环境了,

但是 0 Rows successfully loaded. 再去看.log文件,原来是number类型引发的ORA-01722问题;

后续在代码中:
Process p = Runtime.getRuntime().exec(“sqlldr ”+cmd);

放服务器上运行,正常导入数据。

oracle使用sqlldr进行文件入库操作 –操作系统下加载动作 1、ctl文件的创建 该控制文件说的是将ok_data.txt的数据,以空格做分隔符,插入到tmp表中。 [oracle@localhost 20130922]$ cat load_ok_data.ctl load data infile 'ok_data.txt' append into table TMP_GJ2013_CASE3_9901 fields termina... 阅读详情

相关推荐

vtk相机_分别用 VTK 体绘制和面绘制来实现医学图像三维重建;

序言,VTK介绍:VTK 全称为 The Visualization Toolkit (可视化工具),是一个开源、跨平台、自由获取、支持并行计算的图形应用函数;拥有3D 渲染的最新工具、提供3D交互模式以及2D绘图等。VTK 包含一个C++类库,目前提供了众多语言接口,例如 Java、Python、TCL;在三维函数库OpenGL 的基础上采用面向对象设计方法发展起来图形学基本概念和数据...

weixin_39665302的博客 665

Java调用sqlldr在linux上导入数据

看过网上一大堆的Java调用sqlldr在Linux上导入数据的博客,决定自己也写一篇,在他们的基础上,尽量把能遇到每一个问题都罗列并且解决。 正文如下: 首先,要了解sqldlr的特点以及必要条件:   特点: sql loader (sqlldr) 是cmd下的命令,可以把一些以文本格式存放的数据导入oracle数据库中,是一种在不同数据库之间进行数据迁移的简单实用的工具。缺点是数...

蜡笔小鑫爱看雪 6921

从Raw图像到超分辨率:真实场景下的图像增强全流程指南

通过本文的学习,您已掌握了利用Raw图像实现真实场景超分辨率的完整技术链——从数据生成的“真实感模拟”,到双分支CNN的“细节+色彩”协同建模,再到模型的训练与落地。本文将带您从理论到实践,掌握利用Raw图像实现真实场景超分辨率的核心技术,让您的图像在细节和色彩上都能“更上一层楼”。是相机传感器直接输出的原始数据,保留了最完整的亮度、色彩信息(如Bayer阵列的原始采样),这为超分辨率提供了“富矿级”的信息基础。该分支以低分辨率RGB图像为参考,学习“色彩变换矩阵”,让恢复的细节拥有真实的色彩表现。

FJN110的博客 105

2020-04-08

有没有大佬,遇见过sqlldr命令执行异常“cannot run program"sqlldr";java.io.IOException:error=2,No such file or directory”! ps:1.确定绝对路径下文件和目录存在 2.未生成sqlldr. log和sqlldr. bad文件 ...

m0_37975765的博客 648

执行Oracle中的sqlldr xxx.ctl命令导入数据时,当错误无法导入时,注意查看「xxx.log信息」

当我们在执行这个SQL语句时 sqlldr username/password control = 'TBL_EMP.ctl' 会在当前目录下生产一个TBL_EMP.log文件   当我们的TBL_EMP.ctl中的SQL语句有问题时,会直接在控制台报错 但是,当插入的数据违反一些约束时,比如字段不能为空,错误信息便会在log信息中显示

sun0322 5496

Java后台开发中一些工具和笔记以及解决办法(不断更记录笔记)

获取时间 SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(System.currentTimeMillis()); String formatTime = formatter.format(date);

weixin_42225792的博客 522

oracle sqlldr 数据导入时报错:Field in data file exceeds maximum length完美解决

sqlldr数据导入maxinum错误

m0_60767504的博客 6790

oracle sqlldr 数据导入超长,sqlldr 数据导入问题 超长

本帖最后由 hlwjxsg 于 2012-6-19 10:59 编辑sql脚本代码: call.sqlset echo offset term offset line 1000 pages 0set feedback offset heading offspool C:\ldr_object.csv@C:\getobject.sqlspool offset heading onset feedba...

weixin_42132598的博客 1638

Oracle SQLLDR数据迁移实战:从CSV高效导入到性能调优

数据迁移是数据库管理中的核心任务,涉及将数据从外部源(如CSV文件)高效、准确地加载到数据库系统中。其原理通常基于批量加载技术,通过绕过常规SQL处理层,直接操作数据块来大幅提升传输速度。这种技术价值在于能够处理海量数据,减少网络和事务开销,特别适用于数据仓库初始化、定期批量更新等场景。在Oracle生态中,SQLLDR(SQL*Loader)作为原生工具,通过直接路径加载(Direct Path Load)模式,实现了远超传统逐条插入的性能。它支持复杂的数据格式转换、条件过滤和错误处理,并能与Shell脚

weixin_33391446的博客 221

sqlldr加载19c pdb最佳实践

oracle下载的软件包或者补丁文件校验背景sqlldr--数据文件sqlldr--控制文件PSU补丁校验命令 背景 sqlldr历史悠久,从oracle 7开始提供数据加载得功能。那么在高本版,甚至19c上面sqlldr还能否使用哪? 某客户就有这种需求,经常需要把excel里面的数据导入数据库表里面,那么sqlldr就成为不二之选。下面看下具体的使用和注意事项。 sqlldr数据文件 一般会导出一个excel文件,或者csv文件,类似如下: 其中的内容如下: 为了后面的控制文件好些,一般插入个分

fanzhuozhuo的博客 3253

Oracle-工具之SQLLDR

Oracle工具之SQLLDR

UntifA的博客 6848

ORACLE数据导入工具SQLLDR的使用

SQLLDR工具是ORACLE提供的数据导入工具,使用方法如下: 1. 命令 sqlldr username/password@service control=E:\xxx\loader.ctl log=result.log 控制文件为loader.ctl, 日志文件为result.log,保存位置为c:\Documents and Settings\登录用户名 2. loader.ctl文件内容...

boris' blog 224

文本导入数据oracle_oracle导出数据到文本、从文本导入数据

经常有需求向表中导入大量的数据,使用insert不靠谱,太慢oracle提供了sqlldr的工具也有时需要讲数据导入到文本,oracle的spool可以轻松实现方便的实现oracle导出数据到txt、txt导入数据oracle一、导出数据到txt这里用all_objects表做测试SQL> descall_objects;NameNull? Type-----------------...

weixin_39987211的博客 211

Oracle sqlldr 导入碰到的问题

Oracle sqlldr 导入碰到的问题 背景:最近两天使用sqlldr将csv文件导入oracle数据库准备对数据分析。碰到了许多问题,记录下对这些问题的解决思路。对于数据库不太熟悉的可参考。 分析:由于对数据库不是非常熟,创建表时根据csv文件中的数据来选取字节长度、数据类型,初看感觉没啥问题,但是导入数据时,总是各种问题(如无效数字、字节长度过长、字符集等)。 ...

asdwt123的专栏 2446

2020-08-17

卑微小宸在线跪求,badboy最新版,下载链接,现在csdn上,能搜到的链接都要收费,让本不富裕的家庭又雪上加霜。 有木有哥哥行行好 ,摆拖,

I_zichen的博客 162

Sqlldr笔记

 sql loader可以把一些以文本格式存放的数据顺利地导入oracle数据库中,它是一种在不同数据库之间进行数据迁移非常方便而且通用的工具。缺点就是速度比较慢,另外对blob等类型的数据就有点麻烦了。一、用法: SQLLDR keyword=value [,keyword=value,...] 二、有效的关键字:   userid -- ORACLE username/pas

stephenpeng的专栏 684

ORACLE一些导出导入问题记录和详细解决过程

exp 是传统的导出工具,功能相对较少,不支持并行导出和高级数据转换等功能。expdp 是主要的导出工具,提供了更多的功能和灵活性,包括并行导出、数据转换和高级过滤等。对于新的数据库导出任务,建议使用 expdp 工具。但是,如果您需要与旧版本兼容或需要执行特定任务,可以考虑使用 exp 工具。

weixin_54028135的博客 1921

sqlldr用法

sqlldr用法

dwj19830118的专栏 4905

利用sqlldr工具进行数据迁移时发现的问题解决方法

利用oracle自带的sqlldr工具从mysql转到oracle中时,一千万条的记录迁移时间只需七,八分钟左右,真是快啊,但在迁移前也要做好相关的准备工作,下面是我发现的两个不容易碰到的问题 1.加载clob大类型对象时的问题...

cucanqi9387的博客 243

100%能用的RV1108设计的多款产品的原理图和PCB和相应的技术资料.zip

100%能用的RV1108设计的多款产品的原理图和PCB和相应的技术资料.zip

上一篇: Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4
下一篇: 非maven 项目,WEB项目启动没问题访问页面就报错:org.apache.jasper.JasperException: Unable to compile class for JSP
傻里吧六
博客等级 码龄8年 0粉丝 14原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值