Il quote()
di SQLite La funzione consente di eseguire l'escape di una stringa in modo che sia adatta per l'inclusione in un'istruzione SQL.
Le stringhe sono circondate da virgolette singole con escape sulle virgolette interne.
I BLOB sono codificati come letterali esadecimali.
Si noti che le stringhe con caratteri NUL incorporati non possono essere rappresentate come stringhe letterali in SQL. Se includi stringhe con caratteri NUL incorporati, la stringa letterale restituita viene troncata prima del primo NUL.
Esempio
Ecco un semplice esempio di quote()
funzione per dimostrare come funziona.
SELECT
'Money',
quote('Money');
Risultato:
'Money' quote('Money') ---------- ---------------------- Money 'Money'
Si noti che la seconda colonna viene restituita con virgolette singole.
Generazione di un'istruzione SQL
Il quote()
la funzione potrebbe tornare utile se hai bisogno di generare un INSERT
SQL istruzione dal contenuto di una tabella di database esistente.
Ad esempio, ho la seguente tabella chiamata Prodotti :
ProductId ProductName Price ---------- -------------- ---------- 1 Homer's Widget 10.0 2 Peter's Widget 20.75 3 Bob's Widget 15.0
Ogni nome di prodotto contiene un singolo carattere di virgolette. Se volessi generare un INSERT
dichiarazione con questi valori, allora avrei bisogno di evitare i caratteri di virgolette singole.
Ecco un esempio di generazione di INSERT
istruzioni da questa tabella e utilizzando quote()
per evitare le virgolette singole.
SELECT
'INSERT INTO Products2 (ProductName, Price)
VALUES (' || quote(ProductName) || ', ' || Price || ');'
FROM Products;
Risultato:
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);