在 isql 中,有没有办法让我从一个文件运行多个 SQL 语句?

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

我有一个包含多个 SQL 查询的文件。

我可以通过 isql 以某种方式运行它们吗(我正在从 Bash 脚本执行调用,因此无法访问 Perl DBI 或 JDBC)

我尝试通过 echo /my/file | isql -my-other-parameters 将它们通过管道传输到 isql 命令中,但这没有用。

是的。

  • 如果您 运行 我 SQL 处于交互模式,您可以使用 > 中的 :r my-filename 命令加载文件的全部内容] 提示.

  • 从 Bash 脚本,也可以这样做 - 但您需要仔细确保

    1. 您输入的 SQL 文件末尾有一个 go 语句。这是导致您提到的问题的一个非常常见的原因。

    2. 该语句后面有一个换行符。

    从脚本中,您可以通过两种方式完成:通过 pipe/redirect 传递 STDIN;或者,通过isql的-i参数

  • 传入文件名

在我的例子中,管道查询工作 isq -n

isql -U $DB_USR -P $DB_PWD -S $DB_PATH -D $DB_NAME -w 500 < $FILE