SQL値のクォート文字列とエスケープシーケンスの処理
シングルクォート、バックスラッシュエスケープ、カンマ、改行を含むSQL文字列値を適切にエスケープされたCSVフィールドに抽出します。
Data Types
詳細な説明
文字列エスケープ — SQLからCSVへ
SQL文字列はシングルクォートを使用し、独自のエスケープルールを持っています。CSVフィールドはデフォルトでダブルクォートを使用し、異なるエスケープを使用します。ツールはこの変換を自動的に処理します。
SQLの例
INSERT INTO articles (id, title, author, excerpt) VALUES
(1, 'It''s a Wonderful Life', 'O''Brien, Frank', 'A classic film that''s beloved by many'),
(2, 'The "Best" Guide', 'Jane Smith', 'Contains "quoted" text and commas, naturally'),
(3, 'Line\nBreak Test', 'Test Author', 'First line\nSecond line\nThird line');
生成されるCSV
id,title,author,excerpt
1,It's a Wonderful Life,"O'Brien, Frank",A classic film that's beloved by many
2,"The ""Best"" Guide",Jane Smith,"Contains ""quoted"" text and commas, naturally"
3,"Line
Break Test",Test Author,"First line
Second line
Third line"
エスケープの変換
| SQLエスケープ | 意味 | CSV結果 |
|---|---|---|
''(二重クォート) |
リテラルシングルクォート | '(エスケープ解除) |
\'(バックスラッシュクォート) |
リテラルシングルクォート | '(エスケープ解除) |
\n |
改行 | 実際の改行(フィールドはクォートされる) |
\t |
タブ | 実際のタブ(タブが区切り文字の場合クォートされる) |
\\\\ |
リテラルバックスラッシュ | \\ |
CSVクォートルール(RFC 4180)
CSVフィールドは以下を含む場合にダブルクォートで囲まれます:
- 区切り文字(デフォルトではカンマ)
- クォート文字(デフォルトではダブルクォート)
- 改行文字(
\nまたは\r)
クォートされたフィールド内のダブルクォートは二重にしてエスケープされます:""。
ユースケース
テキストフィールドにアポストロフィ、引用符、カンマ、複数行コンテンツが頻繁に含まれるCMSやブログ記事のダンプの変換。