Java 将字符串格式的空值从iBatis传递到Postgres DB中的整数值
我正在使用iBatis将数据从一个表(MySQL)传输到另一个表(Postgres)。 表1(字符串名称、整数年龄、日期日期、字符串注释) 我通过Ibatis插入数据时使用的代码是: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
<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',)