Dameng-Datenbankabfrage meldet „String-Kürzung“

Beim Abfragen der Dameng-Datenbank wird ein Problem mit der Abschneidung von Zeichenfolgen gemeldet

Wenn bei der Verwendung von Dameng-Datenabfrageanweisungen, insbesondere wenn der Feldtyp TEXT ist, Zeichenfolgenoperationen für dieses Feld ausgeführt werden und die Inhaltslänge des Felds zu lang ist, tritt ein Fehler beim Abschneiden der Zeichenfolge auf.

In der folgenden Studentenprofiltabelle wird beispielsweise das Textfeld eingeführt
create table student(
	id BIGINT primary key  comment'主键',
	name varchar(50) comment '姓名',
	introduce text comment'学生简介'	
	
) comment'学生简介表';

Wenn wir die ersten 500 Zeichen des Studentenprofilfelds abfangen möchten und überlange Felder in der eingeführten Tabelle vorhanden sind, wird ein Fehler beim Abschneiden der Zeichenfolge gemeldet.

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

Fehler „String-Truncation“ gemeldet.
Fügen Sie hier eine Bildbeschreibung ein
Nach Recherche und Anfrage. Es scheint, dass die String-Funktion den Texttyp verarbeiten kann, aber das Grundprinzip besteht darin, zuerst den Texttyp in den String-Typ zu konvertieren. Nochmals verarbeiten. Daher wird ein überlanger Fehler auftreten.

SUBSTR()
SUBSTRB()
BIT_LENGTH()
CHAR_LENGTH()
CHARACTER_LENGTH()
TO_CHAR()
REGEXP_REPLACE()
Die meisten String-Funktionen dürfen 13105 nicht überschreiten

Die Funktion REPLACE() ist davon nicht betroffen

Die Länge der von einigen Funktionen verarbeiteten Zeichenfolge scheint 32767 zu betragen. Verwenden Sie daher zunächst die Funktion length(), um bei der Verarbeitung entsprechend zu filtern.

Nach dem Umschreiben der Aussage

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

Wenn beim Programmieren Zeichenfolgen ersetzt und gefiltert werden, ist es am besten, die Benutzereingabelänge so zu steuern, dass sie 13105 nicht überschreitet.

おすすめ

転載: blog.csdn.net/qq_38881740/article/details/128648794