Le SQLite quote()
La fonction vous permet d'échapper une chaîne afin qu'elle puisse être incluse dans une instruction SQL.
Les chaînes sont entourées de guillemets simples avec des échappements sur les guillemets intérieurs.
Les BLOB sont encodés sous forme de littéraux hexadécimaux.
Notez que les chaînes contenant des caractères NUL intégrés ne peuvent pas être représentées sous forme de littéraux de chaîne dans SQL. Si vous incluez des chaînes avec des caractères NUL intégrés, le littéral de chaîne renvoyé est tronqué avant le premier NUL.
Exemple
Voici un exemple simple de la quote()
fonction pour montrer comment cela fonctionne.
SELECT
'Money',
quote('Money');
Résultat :
'Money' quote('Money') ---------- ----------------------Money 'Money'Notez que la deuxième colonne est renvoyée avec des guillemets simples.
Générer une instruction SQL
Le
quote()
la fonction pourrait être utile si jamais vous avez besoin de générer un SQLINSERT
déclaration à partir du contenu d'une table de base de données existante.Par exemple, j'ai le tableau suivant appelé Produits :
ProductId ProductName Prix ---------- -------------- ----------1 Homer's Widget 10.0 2 Peter's Widget 20.75 3 Bob's Widget 15.0Chaque nom de produit contient un guillemet simple. Si je voulais générer un
INSERT
déclaration avec ces valeurs, alors j'aurais besoin d'échapper les guillemets simples.Voici un exemple de génération de
INSERT
déclarations de cette table, et en utilisantquote()
pour échapper les guillemets simples.SELECT 'INSERT INTO Products2 (ProductName, Price) VALUES (' || quote(ProductName) || ', ' || Price || ');' FROM Products;
Résultat :
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);