【问题标题】:ERROR 266: Inconsistent Datatype: TIMESTAMP type is incompatible with INT type SAP HANA错误 266:不一致的数据类型:TIMESTAMP 类型与 INT 类型 SAP HANA 不兼容
【发布时间】:2019-12-09 20:51:37
【问题描述】:

我正在尝试将 SAP HANA 上的源表 A 转移到另一个目标表 B。

下面两个表的结构相同;他们都有一列LASTUPDATE,其类型为TIMESTAMP,但是当我尝试执行时

Insert into TABLE B (Select BASE1,BASE2,LASTUPDATE from TABLE A) 

有这个错误:

ERROR 266: Inconsistent Datatype: TIMESTAMP 类型与 INT 类型不兼容

表A的结构:

表B的结构:

这可能是一个错误,你知道如何解决这个问题吗?

看起来它正在将 TARGET 上的 LASTUPDATE 读取为 INT,但我检查了它的类型为 TIMESTAMP 的结构并将其修改为类型 DateTo_SecondDate,我有同样的错误读为 INT。

insert into wctversion (SELECT base1,base2,base3,base4,lastupdate,
schname,status,updateuser FROM TMP_wctversion)

它显示了这个错误:

无法执行 'insert into wctversion (SELECT base1,base2,base3,base4,lastupdate,schname,status,updateuser FROM ...' SAP DBTech JDBC:[266]:不一致的数据类型:TIMESTAMP 类型与 INT 类型不兼容:第 1 行第 57 列(在 pos 56)

【问题讨论】:

  • 据我所知,列的位置不一样,所以它尝试将时间戳(列lastupdate,位置8)放入整数(列状态,位置8)跨度>
  • @legxis 你能把你的评论变成答案吗? (只需完成一点以解释 SQL INSERT ... SELECT 的工作原理,但这绝对是正确的答案;您还应该强调 OP 没有注意列的 POSITION 值)
  • 总是指定目标列insert into wctversion (col1, col2, col3) select ....
  • 谢谢!它工作得很好!这确实是一个位置问题:)

标签: database timestamp int sap hana


【解决方案1】:

根据@a_horse_with_no_name 的评论,您没有指定 traget 字段,因此系统正在尝试按顺序分配字段。

在您的情况下,这意味着您正在尝试将 LASTUPDATE 插入 BASE3 - 因此出现转换错误。

你应该有:

INSERT INTO B ("BASE1", "BASE2", "LASTUPDATE") (SELECT "BASE1", "BASE2", "LASTUPDATE" FROM A)

【讨论】:

  • 谢谢!它工作得很好!这确实是一个位置问题:)
猜你喜欢
  • 1970-01-01
  • 2021-02-21
  • 1970-01-01
  • 1970-01-01
  • 2021-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-20
相关资源
最近更新 更多