La consulta de la base de datos de Dameng informa "truncamiento de cadenas"

Al consultar la base de datos de Dameng, se informa un problema de "truncamiento de cadenas"

Cuando se utilizan declaraciones de consulta de datos de Dameng, especialmente si el tipo de campo es TEXTO, cuando se realizan operaciones de cadena en este campo y la longitud del contenido del campo es demasiado larga, se producirá un error de "truncamiento de cadena".

Por ejemplo, la siguiente tabla de perfil de estudiante tiene el campo de texto para introducir
create table student(
	id BIGINT primary key  comment'主键',
	name varchar(50) comment '姓名',
	introduce text comment'学生简介'	
	
) comment'学生简介表';

Cuando queremos interceptar los primeros 500 caracteres del campo del perfil del estudiante, cuando hay campos demasiado largos en la tabla introducida, se informará un error de "truncamiento de cadena".

select *,SUBSTRB(introduce,0,500)
 from student

Se informó del error "truncamiento de cadena".
Insertar descripción de la imagen aquí
Después de investigar y consultar. Parece que la función de cadena puede manejar el tipo de texto, pero el principio básico es convertir primero el tipo de texto al tipo de cadena. Procesar nuevamente. Entonces se producirá un error demasiado largo.

SUBSTR()
SUBSTRB()
BIT_LENGTH()
CHAR_LENGTH()
CHARACTER_LENGTH()
TO_CHAR()
REGEXP_REPLACE()
La mayoría de las funciones de cadena no pueden exceder 13105

La función REPLACE() no se ve afectada

La longitud de la cadena procesada por algunas funciones parece ser 32767, por lo que primero use la función length () para filtrar en consecuencia durante el procesamiento.

Después de reescribir la declaración

select *,
regexp_replace(introduce,'我','你'),
length(introduce)
 from student
 where length(introduce)<13105

En programación, si hay reemplazo y filtrado de cadenas, es mejor controlar la longitud de la entrada del usuario para que no exceda 13105.

Supongo que te gusta

Origin blog.csdn.net/qq_38881740/article/details/128648794
Recomendado
Clasificación