【发布时间】: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 的结构并将其修改为类型 Date 和 To_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