Search code examples
isql

In isql, is there a way for me to run several SQL statements from a file?


I have a file that contains several SQL queries.

Can I somehow run them via isql (I'm doing the calls from Bash script, so no access to Perl DBI or JDBC)

I tried piping them into isql command via echo /my/file | isql -my-other-parameters but that didn't work.


Solution

  • Yes.

    • If you're running ISQL in interactive mode, you can load an entire contents of the file using :r my-filename command from > prompt.

    • From Bash script, it's also possible to do - but you need to carefully make sure that

      1. The SQL file you are piping in has a go statement at the end. That is a VERY common cause of issues like the one you mentioned.

      2. That statement has a newline after it.

      From a script, you can do it 2 ways: Pass on STDIN via a pipe/redirect; OR, pass in the file name via isql's -i parameter