请教oceanbase的TEXT类型使用问题

版本:5.7.25-OceanBase_CE-v4.2.0.0
oceanbase MYSQL,表字段col1类型为TEXT,存过定义变量var1(TEXT类型)
存储过程使用 select col1 INTO var1 INTO from table1 limit 1;报错,提示4016 internal error
用MEDIUMTEXT也有这种问题,请教各位大佬知道这怎么解决吗

收到,我先确认下。

你好,我在使用最新版本421测验未发现此问题。可以提供下复现存储sql。

create table table1(col1 text,col2 text);

delimiter //
CREATE PROCEDURE proc_name() 
BEGIN 
DECLARE var1 text DEFAULT 'ZhangSan';
SET var1 = 'LiSi';
select col1 INTO var1  from table1 limit 1;
select var1;
end //

delimiter ;

麻烦你用我这个脚本试下
DROP TABLE IF EXISTS table1;
CREATE TABLE table1 (col1 text,col2 varchar(200),col3 varchar(100) );
insert into table1(col1,col2,col3) values(‘11’,‘22’,‘333’);

DROP PROCEDURE IF EXISTS proc_name;
delimiter //
CREATE PROCEDURE proc_name()
BEGIN
DECLARE col1_var text;
DECLARE col2_var text;
select concat(col1,col2),concat(col1,col3) INTO col1_var,col2_var from table1 limit 1;
IF col1_var!=col2_var THEN
select ‘!=’;
ELSE
select ‘=’;
END IF;
end //
delimiter ;

call proc_name();

还有,我用IFNULL处理TEXT类型也会报错
DROP TABLE IF EXISTS table1;
CREATE TABLE table1 (col1 text,col2 varchar(200),col3 varchar(100) );
insert into table1(col1,col2,col3) values(‘11’,‘22’,‘333’);

DROP PROCEDURE IF EXISTS proc_name;
delimiter //
CREATE PROCEDURE proc_name()
BEGIN
DECLARE col1_var text;
DECLARE col2_var text;
select concat(col1,col2),concat(col1,col3) INTO col1_var,col2_var from table1 limit 1;
SET col1_var=IFNULL(col1_var,’’);
SET col1_var=IFNULL(col2_var,’’);
end //
delimiter ;

call proc_name();

好的,我这边测下,请稍等

是不是TEXT类型不能使用concat拼接处理和比较,下面这样使用也会报错
DROP TABLE IF EXISTS table1;
CREATE TABLE table1 (col1 text,col2 varchar(200),col3 varchar(200) );
insert into table1(col1,col2,col3) values(‘11’,‘22’,‘33’);

DROP PROCEDURE IF EXISTS proc_name;
delimiter //
CREATE PROCEDURE proc_name()
BEGIN
DECLARE col1_var text;
DECLARE col2_var text;
select col1,concat(col1,‘11’) INTO col1_var,col2_var from table1 limit 1;
IF col1_var!=col2_var THEN
select ‘!=’;
ELSE
select ‘=’;
END IF;
end //
delimiter ;

call proc_name();

你好,该问题初步确认是产品缺陷,具体原因已经分析中,计划下个版本修复。