当前位置: 首页 > 知识库问答 >
问题:

Spring Batch - Sybase试图在非法的类型对之间进行转换

于鹏
2023-03-14

使用sybase db在SpringBatch中运行作业时,我得到以下异常。模式是使用Spring Batch附带的“schema-sybase.sql”创建的。

Spring-batch版本-spring-batch-核心-2.1.7

错误

2015-04-07 09:21:13138错误[org.springframework.batch.core.launch.support.CommandLineJobRunner]-org.spring framework.dao。TransientDataAccessResourceException:PreparedStatementCallback;SQL[从BATCH_JOB_INSTANCE中选择JOB_INSTANCE_ID、JOB_ NAME,其中jobUname=?和jobukey=?];JZ006:捕获IOException:java.io。IOException:JZ0TC:尝试在非法类型对之间进行转换。;嵌套异常是java.sql。SQLException:JZ006:捕获的IOException:java.io。IOException:JZ0TC:尝试在非法类型对之间进行转换。

作业配置

html prettyprint-override"><?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns ="http://www.springframework.org/schema/batch"
       xmlns:beans="http://www.springframework.org/schema/beans"
	   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                    http://www.springframework.org/schema/batch
                    http://www.springframework.org/schema/batch/spring-batch-2.1.xsd">

    <beans:import resource="../launch-context.xml"/>
                         
     <beans:bean id="helloWorld" class="com.chatar.batch.practice.HelloWorld"
    		scope="step">
    	<beans:property name="name" value="#{jobParameters[name]}"/>
	</beans:bean>

    <step id="helloWorldStep">
        <tasklet ref="helloWorld"/>
    </step>

    <job id="helloWorldJob" incrementer="idIncrementer">
        <step id="helloWorldStep1" parent="helloWorldStep"/>
         <listeners>
        	<listener ref="loggingListener"/>
    	</listeners>
    </job>
    
    <beans:bean id="loggingListener" class="com.chatar.batch.practice.listener.JobLoggerListener"/>
    
    <beans:bean id="idIncrementer" class="org.springframework.batch.core.launch.support.RunIdIncrementer"/>

</beans:beans>

共有2个答案

东郭海阳
2023-03-14

实际上,在schema-sybase.sql中将BIGINT更改为INTEGER后,它运行良好。

看起来sybase和JDBC驱动程序兼容性有问题。

上述解决方案使用 jconn-3.0.0 进行测试.jar

逄宁
2023-03-14

在将JDBC驱动程序升级到7.0.7 - jconn-7.0.7.jar版本后,它可以很好地与BIGINT一起工作

 类似资料:
  • 大多数程序能处理各种数据类型的信息。有时候所有的操作还会集中于某一种类型上,例如,整数加整数还是整数(只要结果不是太大,能用整数表示出来)。但是,常常需要将一种类型的数据转换为另外一种类型的数据,赋值、计算、给函数传值以及从函数返回值都可能会发生这种情况。对于内部的类到,编译器知道如何转换类型。程序员也可以用强制类型转换运算符实现内部类型之间的强制转换。 但是怎样转换用户自定义类型呢?编译器不知道

  • 问题内容: Java 8具有用于日期和时间的全新API。此API中最有用的类之一是,用于保存与时区无关的date-with-time值。 为此目的,可能有数百万行代码使用遗留类。这样,在连接旧代码和新代码时,将需要在两者之间进行转换。由于似乎没有直接的方法可以完成此任务,该怎么办呢? 问题答案: 简短答案: 说明:(基于这个问题有关LocalDate) 尽管有名称,它代表时间轴上的一个瞬间,而不是

  • 问题内容: 我从UDP套接字获取了一个字节片(),并希望将其视为整数片(),而无需更改基础数组,反之亦然。在C(++)中,我只是在指针类型之间进行转换;我将如何在Go中执行此操作? 问题答案: 正如其他人所说,在Go中强制转换指针被认为是错误的形式。这是正确的Go方式示例以及与C数组转换等效的示例。 警告:所有代码未经测试。 在此示例中,我们使用包将每组4个字节转换为。这样更好,因为我们指定了字节

  • 我在configs/common中使用配置simulation.py。我知道错误了 完整错误: py:

  • 问题内容: 我遇到了以下SYBASE SQL: 该SQL的结果是 这看起来像是将HAVING条件应用于行而不是组。有人可以帮我指出描述这种情况的地方是Sybase 15.5文档吗?我所看到的只是“在团队中运作”。我在文档中看到的最接近的是: hading子句可以包括不在选择列表中且不在group by子句中的列或表达式。 (从这里引用)。 但是,他们没有完全解释当您这样做时会发生什么。 问题答案:

  • 我试图在java中实现不同类型之间的转换器:我有一个超级类foo,有2个子类: fo1和fo2,我也有2个不相关的其他类bar1和bar2,我试图实现一个转换器从bar1到fo1和bar2to fo2(与之相反)。 因为我在这里有继承,所以我想应该创建一个泛型类型的接口(将是bar1或bar2),它将定义转换所需的函数,我还想让转换器成为bar1和bar2的通用转换器,我认为它应该以某种方式使用接