コンテンツにスキップ
SQLファイルの実行

SQLファイルの実行

machbase-neo shell run <file>コマンドは、指定したファイル内の複数のコマンドを順に実行します。

スクリプトファイルの作成

以下のようなサンプルのスクリプトファイルを作成します。

  • cat batch.sh
#
# コメントは `#` または `--` で始めます。
# 文の末尾にセミコロン `;` を付けます。
#

-- Count 1
SELECT count(*) FROM EXAMPLE WHERE name = 'wave.cos';

-- Count 2
SELECT count(*) FROM EXAMPLE 
  WHERE name = 'wave.sin'
;

スクリプトファイルの実行

machbase-neo shell run batch.sh

実行結果

SELECT count(*) FROM EXAMPLE WHERE name = 'wave.cos'
 ROWNUM  COUNT(*)
──────────────────
      1  2175
a row fetched.

SELECT count(*) FROM EXAMPLE WHERE name = 'wave.sin'
 ROWNUM  COUNT(*)
──────────────────
      1  8175
a row fetched.

対話モードでの実行

$ machbase-neo shell

machbase-neo» run ./b.sh;
SELECT count(*) FROM EXAMPLE WHERE name = 'wave.cos'
╭────────┬──────────╮
│ ROWNUM │ COUNT(*)├────────┼──────────┤
12175╰────────┴──────────╯
a row fetched.

SELECT count(*) FROM EXAMPLE WHERE name = 'wave.sin'
╭────────┬──────────╮
│ ROWNUM │ COUNT(*)├────────┼──────────┤
18175╰────────┴──────────╯
a row fetched.

実行可能なスクリプトの作成

スクリプトファイルの先頭行にshebang(#!)を追加します。

#!/usr/bin/env /path/to/machbase-neo shell run

-- Count 1
SELECT count(*) FROM EXAMPLE WHERE name = 'wave.cos';

-- Count 2
SELECT count(*) FROM EXAMPLE WHERE name = 'wave.sin';

次に、chmodで実行権限を付与します。

$ chmod +x batch.sh

スクリプトを実行します。

$ ./batch.sh

SELECT count(*) FROM EXAMPLE WHERE name = 'wave.cos'
 ROWNUM  COUNT(*)
──────────────────
      1  2175
a row fetched.

SELECT count(*) FROM EXAMPLE WHERE name = 'wave.sin'
 ROWNUM  COUNT(*)
──────────────────
      1  8175
a row fetched.
最終更新日