在 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 脚本,也可以这样做 - 但您需要仔细确保
您输入的 SQL 文件末尾有一个 go
语句。这是导致您提到的问题的一个非常常见的原因。
该语句后面有一个换行符。
从脚本中,您可以通过两种方式完成:通过 pipe/redirect 传递 STDIN;或者,通过isql的-i
参数
传入文件名
在我的例子中,管道查询工作 isq -n
。
isql -U $DB_USR -P $DB_PWD -S $DB_PATH -D $DB_NAME -w 500 < $FILE
我有一个包含多个 SQL 查询的文件。
我可以通过 isql 以某种方式运行它们吗(我正在从 Bash 脚本执行调用,因此无法访问 Perl DBI 或 JDBC)
我尝试通过 echo /my/file | isql -my-other-parameters
将它们通过管道传输到 isql 命令中,但这没有用。
是的。
如果您 运行 我 SQL 处于交互模式,您可以使用
>
中的:r my-filename
命令加载文件的全部内容] 提示.从 Bash 脚本,也可以这样做 - 但您需要仔细确保
您输入的 SQL 文件末尾有一个
go
语句。这是导致您提到的问题的一个非常常见的原因。该语句后面有一个换行符。
从脚本中,您可以通过两种方式完成:通过 pipe/redirect 传递 STDIN;或者,通过isql的
-i
参数 传入文件名
在我的例子中,管道查询工作 isq -n
。
isql -U $DB_USR -P $DB_PWD -S $DB_PATH -D $DB_NAME -w 500 < $FILE