SQLite
 sql >> Base de données >  >> RDS >> SQLite

Comment fonctionne SQLite Quote()

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 SQL INSERT 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.0 

Chaque 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 utilisant quote() 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);