为什么插入转换后的字符串时出现 SQL0445W 警告?
Why is there SQL0445W warning while inserting casted string?
我正在尝试将数据插入我的 table :
CREATE TABLE TABLE_TEST (
DAT4 vargraphic(11 CODEUNITS16)
)
ORGANIZE BY COLUMN
IN TS21_IFKU01_32F@
INSERT INTO TABLE_TEST
SELECT cast((cast(222718 AS DECIMAL(31, 5))) AS VARGRAPHIC(11 CODEUNITS16)) AS dat4
FROM sysibm.sysdummy1
INSERT return 以下警告:
SQL0445W Value "222718.00000" has been truncated. SQLSTATE=01004
我不明白为什么,因为我之前将我的值转换为 vargraphic(11)。
return代码为2而不是0,批处理认为查询失败。
你知道为什么会出现这个警告吗?
警告不是来自插入,而是来自转换为 vargraphic(11)。
对于 Squirrel,警告仅通过 INSERT 抛出,而不是 SELECT,这让我相信这是问题的原因。
此解决方案有效:
INSERT INTO TABLE_TEST
SELECT left(cast((cast(222718 AS DECIMAL(31, 5))) AS VARGRAPHIC(40 CODEUNITS16)),11) AS dat4
FROM sysibm.sysdummy1
我正在尝试将数据插入我的 table :
CREATE TABLE TABLE_TEST (
DAT4 vargraphic(11 CODEUNITS16)
)
ORGANIZE BY COLUMN
IN TS21_IFKU01_32F@
INSERT INTO TABLE_TEST
SELECT cast((cast(222718 AS DECIMAL(31, 5))) AS VARGRAPHIC(11 CODEUNITS16)) AS dat4
FROM sysibm.sysdummy1
INSERT return 以下警告:
SQL0445W Value "222718.00000" has been truncated. SQLSTATE=01004
我不明白为什么,因为我之前将我的值转换为 vargraphic(11)。 return代码为2而不是0,批处理认为查询失败。
你知道为什么会出现这个警告吗?
警告不是来自插入,而是来自转换为 vargraphic(11)。 对于 Squirrel,警告仅通过 INSERT 抛出,而不是 SELECT,这让我相信这是问题的原因。
此解决方案有效:
INSERT INTO TABLE_TEST
SELECT left(cast((cast(222718 AS DECIMAL(31, 5))) AS VARGRAPHIC(40 CODEUNITS16)),11) AS dat4
FROM sysibm.sysdummy1