Skip to content
Run sql file

Run sql file

machbase-neo shell run <file> executes multiple commands in the given file.

Make a script file

Make an example script file like below.

  • cat batch.sh
#
# comments starts with `#` or `--`
# A statement should be ends with semi-colon `;`
#

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

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

Run the script file

machbase-neo shell run batch.sh
  • result
SELECT count(*) FROM EXAMPLE WHERE name = 'wave.cos'
┌────────┬──────────┐
│ ROWNUM │ COUNT(*) │
├────────┼──────────┤
│      1 │     2175 │
└────────┴──────────┘
a row selected.

SELECT count(*) FROM EXAMPLE
  WHERE name = 'wave.sin'

┌────────┬──────────┐
│ ROWNUM │ COUNT(*) │
├────────┼──────────┤
│      1 │     8175 │
└────────┴──────────┘
a row selected.

Run the script in interactive mode

$ machbase-neo shell

machbase-neo» run ./b.sh;
SELECT count(*) FROM EXAMPLE WHERE name = 'wave.cos'
┌────────┬──────────┐
│ ROWNUM │ COUNT(*) │
├────────┼──────────┤
│      1 │     2175 │
└────────┴──────────┘
a row selected.

SELECT count(*) FROM EXAMPLE
  WHERE name = 'wave.sin'

┌────────┬──────────┐
│ ROWNUM │ COUNT(*) │
├────────┼──────────┤
│      1 │     8175 │
└────────┴──────────┘
a row selected.

Make an executable script

Add shebang(#!) as the first line of script file like below.

#!/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';

Then chmod allowing executable permission.

$ chmod +x batch.sh

Execute the script.

$ ./batch.sh
SELECT count(*) FROM EXAMPLE WHERE name = 'wave.cos'
┌────────┬──────────┐
│ ROWNUM │ COUNT(*) │
├────────┼──────────┤
│      1 │     2175 │
└────────┴──────────┘
a row selected.

SELECT count(*) FROM EXAMPLE WHERE name = 'wave.sin'
┌────────┬──────────┐
│ ROWNUM │ COUNT(*) │
├────────┼──────────┤
│      1 │     8175 │
└────────┴──────────┘
a row selected.
Last updated on