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