首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从Java运行SQL加载器-并非加载了所有行

从Java运行SQL加载器-并非加载了所有行
EN

Stack Overflow用户
提问于 2012-11-28 08:41:00
回答 2查看 3.5K关注 0票数 4

我正在尝试从Java方法运行SQL Loader,但我遇到了一个问题。

我正在创建一个运行时进程来运行SQLLDR命令,但并不是加载了数据文件中的所有行。相反,无论数据文件中的总行数是多少,它都停留在相同的行数(5184行)。

但是,当我复制完全相同的命令并直接从命令提示符运行它时,它工作得很好,并且所有行都被加载。

你知道这个问题的原因是什么吗?我需要更改Java中的某种缓冲区大小吗?

谢谢!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// Run SQL Loader after creating the control file
        Runtime rt = Runtime.getRuntime();
        String sqlLoaderPath = "C:\\app\\product\\11.1.0\\client_1\\BIN\\";
        String cmd = sqlLoaderPath + "SQLLDR.EXE userid=***************************"
                            + "data=c:\\sqlldr\\sqlldr_data.dat "
                            + "control=c:\\sqlldr\\sqlldr_control.ctl "
                            + "log=c:\\sqlldr\\sqlldr_log.log "
                            + "discard=c:\\sqlldr\\sqlldr_discard.disc "
                            + "bad=c:\\sqlldr\\sqlldr_bad.bad ";
        Process proc = rt.exec(cmd);
        int exitVal = proc.waitFor();
        proc.destroy();
EN

回答 2

Stack Overflow用户

发布于 2015-10-22 19:38:55

我知道现在回答这个问题太晚了,但写它是因为我遇到了类似的问题。只需在sql-loader控制文件的options子句中添加SILENT=FEEDBACK即可。Sql-loader为输出流提供了有限的缓冲区大小,读取失败将导致子进程通过JAVA挂起,因此只需在其选项中使用SILENT来停止sql-loader的输出流。

票数 1
EN

Stack Overflow用户

发布于 2019-04-03 05:18:12

请看看下面的代码,我们是如何使用的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String dbStr = "sqlldr "+dbuserid +"/" + dbpassword + "@" + dbServiceName;

String cmdStr = dbStr +" control="+controlFileName;
               cmdStr = cmdStr+" log="+logName;
               cmdStr = cmdStr+" data="+dataFilePath;
               cmdStr = cmdStr+" bad="+badName;
               cmdStr = cmdStr+" errors="+Utils.getPropertyString("sqlldr_allowed_error");

Process p = rt.exec( cmdStr );

        InputStream in = p.getInputStream();
        InputStreamReader isr = new InputStreamReader(in);
        BufferedReader br = new BufferedReader(isr);
        String line = null;

        while( (line = br.readLine()) != null ) {
            sb.append(line+"\n");
        }

        InputStream inE = p.getErrorStream();
        InputStreamReader iser = new InputStreamReader(inE);
        BufferedReader erbr = new BufferedReader(iser);

        while( (line = erbr.readLine()) != null ){
            sb.append( "\nError stream:" );
            sb.append(line);
        }

        try {

                eValue = p.waitFor();
                Utils.info_log.info("waitFor Value is :: "+eValue);

        } catch ( Exception e ) {
            Utils.info_log.info(Utils.dumpStackTrace(e).toString());
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13600981

复制
相关文章
java类加载器加载机制
  Java的安全模型是的Java成为适于网络环境的技术——《深入Java虚拟机》
the5fire
2019/02/28
1K0
Java类加载器
通过一个类的全限定名来获取描述此类的二进制字节流这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”。
@阿诚
2020/09/01
7990
Java类加载器
SQL 加载
首先新建表 第一张表 order_info 第二张表 user_info 登录mysql mysql -u root -p 在开始加载数据之前配置编码 查看默认编码 show variabl
hankleo
2020/09/16
4430
SQL 加载
java类加载器是什么_类加载器有几种
答:顾名思义,类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。
全栈程序员站长
2022/09/22
4570
Java类加载-加载
我们已经将整个Class的构成讲述完了,不清楚的同学可以看一下关于Class文件的介绍,但是空有Class并没有什么用,在Class中的各种描述信息都需要被加载到虚拟机以后才能运行使用。
shysh95
2021/02/25
1.3K0
Java类加载-加载
浅谈Java类加载器
注意最后的null值应该是启动类加载器、单因为是C++语言编写的,所以无法获取到相关的信息
Java学习录
2019/05/15
3260
Java的类加载器
大白话就是,将字节流转换为类,找不到就报错!子类应该覆盖这个方法 第二个方法 defineClass
止术
2020/09/15
3670
Java中类加载器
在上一篇类加载中我们介绍了一个类要加载到内存中要分为7个步骤。其中第一步就是加载也就是通过类的全限定名来获取类的二进制字节流。在Java中把上述加载的过程定义了一个模块叫做类加载器,目的是可以让用户自己决定如何加载一个类。类加载器虽然只是实现类的加载动作,但它在Java中起到的作用却远远要比类加载的功能要重要的多。原因就是类加载器在加载的过程中,会有一些特殊的特性来保证Java的运行安全。例如,每一个类加载器,都有一个独立的类名称空间。说白点就是如果要比较两个类是否相等,必须有一个前提,就是这两个类必须是同一个类加载器加载的,否则,即使比较的是同一个类,如果它们是由不同的类加载器加载的,那么这两个类也是不相等的。除了上述特性外,还有一个非常重要的特性就是双亲委派模式。在介绍双亲委派模式之前我们先看一下在虚拟机中一共都有哪些类加载器。
吉林乌拉
2019/08/14
5340
Java类加载器(用户自定义类加载器实现)
java类加载器主要分为如下几种: jvm提供的类加载器 根类加载器:底层实现,主要加载java核心类库(如:java.lang.*) 扩展类加载器:使用java代码实现,主要加载如:jre/lib/ext/ 下的扩展类库。(父类加载器为根类加载器) 系统类加载器(应用类加载器):使用java代码实现,加载classpath目录下的类。(父类加载器为扩展类加载器) 用户自定义类加载器:去继承ClassLoader类实现自定义类加载器。 类加载器负责将java字节码文件加载到虚拟机内存中也就是类的生命周期的装
Java帮帮
2018/03/15
8140
Java类加载器(用户自定义类加载器实现)
深入理解Java类加载机制-类加载器
加载作为类加载的第一个阶段,是开放的,它允许Java程序员通过自定义的类加载器去加载特定的类。
shysh95
2021/03/16
3810
深入理解Java类加载机制-类加载器
Java 类加载器解析及常见类加载问题
原文 https://www.toutiao.com/article/6812564562244534787 java.lang.ClassLoader 每个类加载器本身也是个对象——一个继承 java.lang.ClassLoader 的实例。每个类被其中一个实例加载。我们下面来看看 java.lang.ClassLoader 中的 API, 不太相关的部分已忽略。 package java.lang; public abstract class ClassLoader {   public Clas
程序猿DD
2022/06/13
1K0
Java 类加载器解析及常见类加载问题
Java类加载机制与Tomcat类加载器架构
虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”。
全栈程序员站长
2022/08/31
3880
深度分析:Java类加载机制和类加载器
所谓类加载机制就是JVM虚拟机把Class文件加载到内存,并对数据进行校验,转换解析和初始化,形成虚拟机可以直接使用的Jav类型,即Java.lang.Class。
会呼吸的Coder
2020/07/03
6950
java类加载过程详解_java三个类加载器
为什么用.class的方式加载类和以Class.forName()的方式加载的结果不同呢,原因很简单,就是类加载过程的不同。
全栈程序员站长
2022/09/22
4430
java类加载过程详解_java三个类加载器
java类的加载过程和类加载器的分析
我们知道,我们写的java代码保存的格式是 .java, java文件被编译后会转换为字节码,字节码可以在任何平台通过java虚拟机来运行,这也是java能够跨平台的原因。
用户2141593
2019/02/20
6030
Java类加载器深入探索
林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka
bear_fish
2018/09/20
3770
Java类加载器深入探索
java类加载器通俗理解
JVM中有两种类型的类加载器,由C++编写的及由Java编写的。除了启动类加载器(Bootstrap Class Loader)是由C++编写的,其他都是由Java编写的。由Java编写的类加载器都继承自类java.lang.ClassLoader。
lovelife110
2021/02/24
6400
java类加载器通俗理解
自定义类加载器和动态加载 Java 代码
有时候,我们需要 java 像脚本一样的运行,甚至是希望我们的代码是热部署,一旦代码文件发生变动就重新加载这个代码,能实现吗?今天就来试着解决下。
breezedancer
2018/09/12
1.1K0
自定义类加载器和动态加载 Java 代码
java GC 类加载器 Servlet
1.创建Servlet实例对象。通过服务器反射机制创建Servlet对象,第一次请
用户7798898
2020/09/27
6360
java GC 类加载器 Servlet
Java类加载器详解(上)
我们知道,新建一个Java对象的时候,JVM要将这个对象对应的字节码加载到内存中,这个字节码的原始信息存放在classpath(就是我们新建Java工程的bin目录下)指定的目录下的.class文件,类加载需要将.class文件导入到硬盘中,经过一些处理之后变成字节码在加载到内存中。
Java团长
2018/07/23
3990
Java类加载器详解(上)

相似问题

什么加载了java系统类加载器?

41

并非所有视图都加载在浏览器中。

39

通过Java运行SQL加载器进程时无法加载大量数据

15

sql中的行到列(并非所有行)

10

还原数据库并非还原了所有行

119
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文