Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将字符串格式的空值从iBatis传递到Postgres DB中的整数值_Java_Mysql_Database_Postgresql - Fatal编程技术网

Java 将字符串格式的空值从iBatis传递到Postgres DB中的整数值

Java 将字符串格式的空值从iBatis传递到Postgres DB中的整数值,java,mysql,database,postgresql,Java,Mysql,Database,Postgresql,我正在使用iBatis将数据从一个表(MySQL)传输到另一个表(Postgres)。 表1(字符串名称、整数年龄、日期日期、字符串注释) 我通过Ibatis插入数据时使用的代码是: <insert id="insertData" parameterType="TransferBean" > INSERT INTO ${base.tableName}(${base.columns}) VALUES( ${base.colum

我正在使用iBatis将数据从一个表(MySQL)传输到另一个表(Postgres)。 表1(字符串名称、整数年龄、日期日期、字符串注释) 我通过Ibatis插入数据时使用的代码是:

<insert id="insertData" parameterType="TransferBean" >
INSERT 
    INTO ${base.tableName}(${base.columns}) 
        VALUES(
                ${base.columnValueStr}
            )
</insert>
但是,Postgres抛出以下错误:

列“Age”的类型为smallint,但表达式的类型为character variable\n提示:您需要重写或强制转换表达式

我的猜测是Postgres将NULL读作“NULL”。我已尝试根据列名传递0(有效)和“”(无效),但这不是一个通用且优雅的解决方案

无法根据列的类型进行筛选

我需要帮助,以了解我是否可以在查询或甚至JAVA级别上进行变通,将NULL作为正确的NULL传递


另外,我已经尝试过从Postgres IDE将空值插入SmallInt,效果很好。

您需要检查变量是否为null,将其替换为文本null,因为null可能会呈现为空白

一定要这样

INSERT INTO TABLE2(Name,Age,Dob,Note) VALUES('Ayush',NULL,'Sample','')
不包括以下内容:(不适用于SQL)

由于您正在将数据从MySQL传输到PostgreSQL,请尝试一下:www.topnew.net/sidu/,这对您的任务来说可能更容易。只需将专家从一个数据库导入另一个数据库。As SIDU同时支持MySQL和PostgreSQL

INSERT INTO TABLE2(Name,Age,Dob,Note) VALUES('Ayush',NULL,'Sample','')
INSERT INTO TABLE2(Name,Age,Dob,Note) VALUES('Ayush',,'Sample',)