sql >> Databáze >  >> RDS >> SQLite

Jak funguje SQLite Quote()

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

Kaž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); 


  1. Uložená procedura pro získání informací o úložišti serveru na serveru

  2. EF4 - Vybraná uložená procedura nevrací žádné sloupce

  3. Jak spojit výsledky dvou dotazů do jedné datové sady

  4. Čištění sloupce Oracle Date