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