SQLite quote()
関数を使用すると、文字列をエスケープして、SQLステートメントに含めるのに適したものにすることができます。
文字列は一重引用符で囲まれ、内部引用符はエスケープされます。
BLOBは16進リテラルとしてエンコードされます。
NUL文字が埋め込まれた文字列は、SQLでは文字列リテラルとして表現できないことに注意してください。 NUL文字が埋め込まれた文字列を含めると、返される文字列リテラルは最初のNULの前で切り捨てられます。
例
quote()
の簡単な例を次に示します。 それがどのように機能するかを示すための機能。
SELECT
'Money',
quote('Money');
結果:
'Money' quote('Money') ---------- ---------------------- Money 'Money'
2番目の列が一重引用符で返されることに注意してください。
SQLステートメントの生成
quote()
SQL INSERT
を生成する必要がある場合は、この関数が便利です。 既存のデータベーステーブルの内容からのステートメント。
たとえば、次の製品という表があります。 :
ProductId ProductName Price ---------- -------------- ---------- 1 Homer's Widget 10.0 2 Peter's Widget 20.75 3 Bob's Widget 15.0
各製品名には一重引用符が含まれています。 INSERT
を生成したい場合 これらの値を使用してステートメントを作成する場合は、一重引用符をエスケープする必要があります。
INSERT
を生成する例を次に示します。 このテーブルのステートメント、およびquote()
の使用 一重引用符をエスケープします。
SELECT
'INSERT INTO Products2 (ProductName, Price)
VALUES (' || quote(ProductName) || ', ' || Price || ');'
FROM Products;
結果:
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);