gpt4 book ai didi

java.sql.SQLException : ORA-00932: inconsistent datatypes: expected DATE got BINARY while Inserting Null timestamp

转载 作者:行者123 更新时间:2023-11-30 06:42:02 24 4
gpt4 key购买 nike

我有一个插入查询,与其他字段一起插入时间戳。现在,每当 Timestamp 的值为 null 时,我都会收到错误 -

java.sql.SQLException: ORA-00932: inconsistent datatypes: expected DATE got BINARY

我使用的是 Oracle 11g。

查询是:

@Modifying
@Query(value ="INSERT INTO mams_asset a ( a.mams_asset_id, a.mams_folder_id, a.asset_name, a.gist, a.last_modified_date, a.last_exported_date, a.created_date ) VALUES (hextoraw(?1), hextoraw(?2), ?3, ?4, ?5, ?6 , ?7)" , nativeQuery = true)
int insertIntoMamsAsset(String mamsAssetId, String mamsFolderId, String assetName, String gist, Timestamp lastModifiedDate, Timestamp lastExportedDate, Timestamp createdDate);

这是 Spring Data JPA 之一。我也尝试使用这种方法,但同样的错误:

public int insertIntoMamsAsset(String mamsAssetId, String mamsFolderId, String assetName, String gist, Timestamp lastModifiedDate, Timestamp lastExportedDate, Timestamp createdDate){

final Query query = entityManager.createNativeQuery("INSERT INTO mams_asset a ( a.mams_asset_id, a.mams_folder_id, a.asset_name, a.gist, a.last_modified_date, a.last_exported_date, a.created_date ) VALUES (hextoraw(?), hextoraw(?), ?, ?, ?, ? , ?)")
.setParameter(1, mamsAssetId)
.setParameter(2,mamsFolderId)
.setParameter(3,assetName)
.setParameter(4,gist)
.setParameter(5,lastModifiedDate)
.setParameter(6,lastExportedDate)
.setParameter(7,createdDate);

return query.executeUpdate();


}

虽然查询看起来很长,但您可以只关注时间戳字段,这就是生成错误的原因。

解决这个问题的方法是什么?

最佳答案

这对我有用

 final Query query = entityManager.createNativeQuery("INSERT INTO mams_asset a ( a.mams_asset_id, a.mams_folder_id, a.asset_name, a.gist, a.last_modified_date, " +
"a.last_exported_date, a.created_date ) VALUES (hextoraw(?), hextoraw(?), ?, ?, ?, ? , ?)")
.setParameter(1, mamsAssetId)
.setParameter(2, mamsFolderId)
.setParameter(3, assetName)
.setParameter(4, gist)
.setParameter(5, lastModifiedDate, TemporalType.TIMESTAMP)
.setParameter(6, lastExportedDate, TemporalType.TIMESTAMP)
.setParameter(7, createdDate, TemporalType.TIMESTAMP);

我在 setParameter 中添加了 TemporalType.TIMESTAMP

关于java.sql.SQLException : ORA-00932: inconsistent datatypes: expected DATE got BINARY while Inserting Null timestamp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44237959/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com