SQLite quote()
Funkce vám umožňuje ukončit řetězec, aby byl vhodný pro zahrnutí do příkazu SQL.
Řetězce jsou obklopeny jednoduchými uvozovkami s uvozovkami uvnitř.
Objekty BLOB jsou kódovány jako hexadecimální literály.
Všimněte si, že řetězce s vloženými znaky NUL nelze v SQL reprezentovat jako řetězcové literály. Pokud zahrnete řetězce s vloženými znaky NUL, bude vrácený řetězcový literál před prvním NUL zkrácen.
Příklad
Zde je jednoduchý příklad quote()
funkce demonstrovat, jak to funguje.
SELECT
'Money',
quote('Money');
Výsledek:
'Money' quote('Money') ---------- ----------------------Money 'Money'Všimněte si, že druhý sloupec je vrácen s jednoduchými uvozovkami.
Generování příkazu SQL
quote()
funkce se může hodit, pokud někdy potřebujete vygenerovat SQLINSERT
z obsahu existující databázové tabulky.Mám například následující tabulku s názvem Produkty :
ProductId Název produktu Cena ---------- -------------- ----------1 Homer's Widget 10,0 2 Peter's Widget 20,75 3 Bob's Widget 15.0Každý název produktu obsahuje jeden znak citace. Pokud bych chtěl vygenerovat
INSERT
příkaz s těmito hodnotami, pak bych musel uvozovat znaky.Zde je příklad generování
INSERT
příkazy z této tabulky a pomocíquote()
pro escapování jednoduchých uvozovek.SELECT 'INSERT INTO Products2 (ProductName, Price) VALUES (' || quote(ProductName) || ', ' || Price || ');' FROM Products;
Výsledek:
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);