为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:windows10
【CPU】:intel
【问题描述】*:语句执行提示数据类型不匹配,语句如下:
–创建测试表TAB_01
CREATE TABLE “SYSDBA”.“TAB_01”
(
“C1” INT NOT NULL,
“C2” CHAR(20),
“C3” VARCHAR(8188),
“C4” NUMERIC(5,2),
“C5” BIGINT,
“C6” FLOAT,
“C7” TIMESTAMP(6),
NOT CLUSTER PRIMARY KEY(“C1”)) STORAGE(ON “MAIN”, CLUSTERBTR) ;
–给表TAB_01插入1000W数据
BEGIN
FOR I IN 1…10000000
LOOP
INSERT INTO SYSDBA.TAB_01
SELECT I, ‘C2_’||I, ‘C3_’||I, ‘C4_’||I, I, SYSTIMESTAMP() FROM DUAL;
IF MOD(I, 10000)=0 THEN
COMMIT;
END IF;
END LOOP;
END;
报错如下:

C4定义为numberic型,但是在插入数据时’c4_'||I实际为字符串,不匹配;
而且在插入数据时,由于插入的数据列和实际列总数不匹配,所以不能缺省列名,可以改为
INSERT INTO SYSDBA.TAB_01(c1,c2,c3,c4,c7)
SELECT I, ‘C2_’||I, ‘C3_’||I, ‘c4_’||I, SYSTIMESTAMP() FROM DUAL;