执行语句提示,在此文句内需提供一个 blob 数据类型
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【GBase版本】:gbase8s:v8.8_3633x21
【操作系统】:Linux mail.test.com 3.10.0-1160.49.1.el7.x86_64 #1 SMP Tue Nov 30 15:51:32 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
【CPU】:
【问题描述】*:表结构:CREATE TABLE test_all_types (
-- 1. 整数类型
col_int INT not null primary key, -- 4字节标准整型
col_smallint SMALLINT, -- 2字节短整型
col_bigint BIGINT, -- 8字节长整型
-- 2. 浮点与定点数
col_smallfloat SMALLFLOAT, -- 4字节单精度浮点
col_float FLOAT, -- 8字节双精度浮点
col_decimal DECIMAL(18, 4), -- 高精度定点数 (金额常用)
col_numeric NUMERIC(10, 2), -- DECIMAL 的同义词
-- 3. 字符与字符串
col_char CHAR(10), -- 定长字符串 (不足补空格)
col_varchar VARCHAR(100), -- 变长字符串
col_nchar NCHAR(10), -- 定长 Unicode
col_nvarchar NVARCHAR(100), -- 变长 Unicode
col_lvarchar LVARCHAR(2000), -- 大可变字符串 (最大约 32KB)
-- 4. 日期与时间
col_date DATE, -- 日期 (YYYY-MM-DD)
col_datetime DATETIME YEAR TO FRACTION(5), -- 日期时间 (含毫秒)
col_interval INTERVAL HOUR TO MINUTE, -- 时间间隔
-- 5. 二进制与大对象
col_byte BYTE, -- 二进制数据 (小对象)
col_text TEXT, -- 文本大对象 (CLOB 类似)
col_blob BLOB -- 二进制大对象
);
覆盖语句:MERGE INTO test_all_types TT USING (SELECT ? as col_int,? as col_smallint,? as col_bigint,? as col_smallfloat,? as col_float,? as col_decimal,? as col_numeric,? as col_char,? as col_varchar,? as col_nchar,? as col_nvarchar,? as col_lvarchar,? as col_date,? as col_datetime,? as col_interval,? as col_byte,? as col_text,? as col_blob FROM DUAL) TS ON ( TT.col_int=TS.col_int) WHEN MATCHED THEN UPDATE SET TT.col_smallint=TS.col_smallint, TT.col_bigint=TS.col_bigint, TT.col_smallfloat=TS.col_smallfloat, TT.col_float=TS.col_float, TT.col_decimal=TS.col_decimal, TT.col_numeric=TS.col_numeric, TT.col_char=TS.col_char, TT.col_varchar=TS.col_varchar, TT.col_nchar=TS.col_nchar, TT.col_nvarchar=TS.col_nvarchar, TT.col_lvarchar=TS.col_lvarchar, TT.col_date=TS.col_date, TT.col_datetime=TS.col_datetime, TT.col_interval=TS.col_interval, TT.col_byte=TS.col_byte, TT.col_text=TS.col_text, TT.col_blob=TS.col_blob WHEN NOT MATCHED THEN INSERT(col_int,col_smallint,col_bigint,col_smallfloat,col_float,col_decimal,col_numeric,col_char,col_varchar,col_nchar,col_nvarchar,col_lvarchar,col_date,col_datetime,col_interval,col_byte,col_text,col_blob) VALUES( TS.col_int, TS.col_smallint, TS.col_bigint, TS.col_smallfloat, TS.col_float, TS.col_decimal, TS.col_numeric, TS.col_char, TS.col_varchar, TS.col_nchar, TS.col_nvarchar, TS.col_lvarchar, TS.col_date, TS.col_datetime, TS.col_interval, TS.col_byte, TS.col_text, TS.col_blob)
字段col_byte、col_blob调用的是PreparedStatement.setBinaryStream();
JDBC执行报:在此文句内需提供一个 blob 数据类型。
字段类型历史原因规定好的改不了,有什么解决办法?
评论
热门帖子
- 12025-12-01浏览数:182764
- 22023-05-09浏览数:25062
- 42023-09-25浏览数:18526
- 52020-05-11浏览数:17529