コンテンツにスキップ

結果の出力

結果の上の「出力…」で形式を選び、「保存先を選んで出力…」を押します。書き出し中は中断できます。出力し終えたファイルを「Finder で表示」で開けるのは macOS だけです。

出力するのは、アプリが保持している取得済みの行です(取得上限まで)。画面の並べ替え・絞込みは反映せず、取得した順・列の順のまま書きます。SQL は実行し直しません。

RFC 4180 に沿って書きます。

  • 文字コードは UTF-8(BOM なし。既定)か、UTF-8(BOM 付き。Excel で開く場合)から選びます。Shift_JIS は表せない文字があるため用意していません。
  • 区切りはカンマ、改行は CRLF(既定)か LF です。値の中の改行は引用符の中にそのまま書きます。
  • NULL は空欄(既定)・\N・NULL から選べます。空文字は常に "" と書くので、引用符の無い空欄が NULL だと区別できます。NULL を NULL か \N で表すとき、同じ文字列の値は引用符で囲みます。
  • 1行目は列名です。同じ名前の列もそのまま並べます。
  • 列が1つの結果で NULL を空欄で表すと、その行は空行になります。空行を読み飛ばすソフトでは行が消えるので、その場合は \N か NULL を選んでください。
  • 数値と日時は、DB から受け取った文字列のまま書きます(桁を落としません)。Excel で開くと、大きな整数が指数表記になるなど、Excel 側で変換されることがあります。
  • 値が = + - @ で始まっても加工しません。表計算ソフトで開くときは、数式として解釈されるおそれに注意してください。
{
"format": "sf-visual-editor/result", "formatVersion": 1,
"exportedAt": "2026-10-03T05:00:00Z", "source": "select ...",
"partial": false, "partialReason": "", "rowLimit": 1000, "fetchedAt": "...", "rowCount": 2,
"columns": [{"index": 0, "name": "ID", "type": "NUMBER(38,0)", "typeName": "FIXED", "kind": "number", "nullable": false, ...}],
"rows": [["1", null], ["2", "あ\nい"]],
"truncatedCells": []
}
  • 行は値の配列(列の順序どおり)です。同じ名前の列があっても失われません。
  • 値は文字列か null(SQL の NULL)です。数値も桁を保つため文字列で書きます。
  • partial が true のときは部分取得です(取得上限などで打ち切ったもので、DB にはほかの行があります)。CSV にはこの印が入らないので、出力の前後に画面で示します。
  • truncatedCells は、64 KiB を超えて途中までしか保持していないセルの [行番号, 列番号] です。
  • 1つの結果を1枚のシートに書きます。シート名はデータタブならオブジェクト名、SQL なら Result です(31文字までに縮め、[ ] : * ? / \ ' は _ に置き換えます)。
  • 1行目は列名です(太字・ウィンドウ枠の固定・オートフィルタ付き)。同じ名前の列もそのまま並べます。
  • NULL は空のセル(既定)か文字列の NULL で書きます。空のセルを選ぶと、空文字は「空の文字列のセル」になるので区別できます。文字列の NULL を選ぶと、値が "NULL" の文字列とは区別できません。
  • 1セルは 32,767 文字までです。超えた値は切り詰め、その数を完了の知らせと「情報」シートに出します。XML で使えない制御文字は � に置き換わります。
  • 2枚目の「情報」シートに、出力元・取得日時・出力日時・行数・列数・部分取得かどうか(部分取得なら理由と取得件数の上限)を書きます。
  • 1シートは 1,048,575 行(見出しを除く)・16,384 列までです。超える結果は出力の前に断るので、CSV を使ってください。
型 書き方
NUMBER・FLOAT 数値。有効桁が15桁を超える値と、Excel で表せない値(NaN・範囲外)は、桁を落とさないよう文字列。NUMBER(p,0) には 0、NUMBER(p,s) には小数 s 桁の表示形式を付ける
BOOLEAN TRUE / FALSE
DATE 日付(yyyy-mm-dd)
TIMESTAMP_NTZ 日時(yyyy-mm-dd hh:mm:ss.000。ミリ秒より細かい桁は表示されない)
TIMESTAMP_TZ・TIMESTAMP_LTZ・TIME・VARIANT・OBJECT・ARRAY・BINARY など 文字列のまま

1900-03-01 より前と 9999 年より後の日付は文字列で書きます。= で始まる値も、数式にせず文字列で書きます。

複数の文を実行して結果タブが2つ以上あるときは、結果タブの右の「すべての結果を出力…」で、行を返したタブをまとめて出力できます。

  • 対象は行を返した結果タブ(取得済みで失効していないもの)だけです。行を返さない文(DML・DDL など)・失敗した文・未実行の文のタブは除きます。ダイアログのチェックで、対象から外すこともできます。
  • CSV と JSON は1タブ1ファイルで、保存先はフォルダです。Excel は1タブ1ファイルか、1ファイルに全タブ(タブごとのシート)かを選べます。
  • ファイル名は <基本名>_<番号>_<文の先頭>.<拡張子> です。基本名の既定は SQL タブの名前、番号は結果タブの番号を2桁以上で0詰めしたもの、文の先頭は最初の数語を _ でつないだ30文字までです。
  • フォルダに同じ名前のファイルがあれば (2)、(3) … を付け、上書きしません。出力の前に、ダイアログで名前の一覧を確かめられます。
  • 上書きしないためにハードリンクを使ってファイルを置きます。そのため Windows では、ハードリンクを作れない保存先(FAT・exFAT の USB メモリなど)にはまとめて出力できません(別のフォルダを選ぶよう案内します)。
  • 1ファイルにまとめた Excel のシート名は <番号>_<文の先頭>(31文字まで)です。「情報」シートにはタブごとの出力元の SQL・行数・部分取得かどうかを1行ずつ書きます。
  • あるタブを出力できなくても(結果が失効していたなど)、ほかのタブは続けて出力し、最後に出力できなかったタブと理由を示します。
  • 中断したときは、書き終えたファイルは残し、書きかけのファイルは消します。1ファイルにまとめた Excel は、中断したら何も残しません。

出力は保存先と同じフォルダの隠しファイル(.<名前>.<乱数>.sfve-part)に書き、最後まで書けたときだけ保存先の名前にします。中断・失敗したら一時ファイルを消し、保存先にもともとあったファイルはそのまま残ります。

  • 既存のファイルを上書きしたときは、元の権限を引き継ぎます。保存先がシンボリックリンクなら、リンク先を置き換えます(拡張属性・ハードリンクは引き継ぎません)。
  • Excel のときは、大きな結果の作業用のファイルを、同じフォルダの隠しディレクトリ(.<名前>.<乱数>.sfve-partdir)に置きます。
  • 強制終了で残った一時ファイルと一時ディレクトリは、次回の起動時に消します。