Das SQLite quote()
Mit der Funktion können Sie eine Zeichenfolge mit Escapezeichen versehen, sodass sie für die Aufnahme in eine SQL-Anweisung geeignet ist.
Zeichenfolgen werden von einfachen Anführungszeichen mit Escapezeichen in inneren Anführungszeichen umgeben.
BLOBs werden als hexadezimale Literale codiert.
Beachten Sie, dass Zeichenfolgen mit eingebetteten NUL-Zeichen in SQL nicht als Zeichenfolgenliterale dargestellt werden können. Wenn Sie Zeichenfolgen mit eingebetteten NUL-Zeichen einschließen, wird das zurückgegebene Zeichenfolgenliteral vor der ersten NUL abgeschnitten.
Beispiel
Hier ist ein einfaches Beispiel für quote()
Funktion, um zu demonstrieren, wie es funktioniert.
SELECT
'Money',
quote('Money');
Ergebnis:
'Geld' quote('Geld') ---------- ----------------------Geld 'Geld'Beachten Sie, dass die zweite Spalte mit einfachen Anführungszeichen zurückgegeben wird.
Generieren einer SQL-Anweisung
Das
quote()
Funktion könnte sich als nützlich erweisen, wenn Sie jemals ein SQLINSERT
generieren müssen Anweisung aus dem Inhalt einer bestehenden Datenbanktabelle.Ich habe zum Beispiel die folgende Tabelle mit dem Namen Produkte :
ProductId ProductName Preis ---------- -------------- ----------1 Homer's Widget 10.0 2 Peter's Widget 20.75 3 Bob's Widget 15.0Jeder Produktname enthält ein einfaches Anführungszeichen. Wenn ich einen
INSERT
generieren wollte -Anweisung mit diesen Werten, dann müsste ich die einfachen Anführungszeichen maskieren.Hier ist ein Beispiel für die Generierung von
INSERT
Anweisungen aus dieser Tabelle und mitquote()
um die einfachen Anführungszeichen zu maskieren.SELECT 'INSERT INTO Products2 (ProductName, Price) VALUES (' || quote(ProductName) || ', ' || Price || ');' FROM Products;
Ergebnis:
INSERT INTO Products2 (ProductName, Price) VALUES ('Homer''s Widget', 10.0); INSERT INTO Products2 (ProductName, Price) VALUES ('Peter''s Widget', 20.75); INSERT INTO Products2 (ProductName, Price) VALUES ('Bob''s Widget', 15.0);