从文件中读取并在 1 行上使用 sqlplus 保存到文件

read from file and save to file with sqlplus on 1 line

我刚刚安装了 Oracle 12c,正在尝试学习 sqlplus。我们有许多使用 dbisql 连接到 Sybase 数据库并检索数据的脚本。 dbisql 的语法非常简单,但我不知道如何在 sqlplus 中做同样的事情。我们只想让 sqlplus 读取带有 SQL 的文件并将结果输出到 csv。我读到您可以执行以下操作:

c:\scripts>sqlplus -L <username>/<pwd>@<tns service name> @"input_file.sql"

将读取 "input_file.sql" 的内容并执行它。但是如何将结果保存在 csv 中呢?应该在 sql 中完成(就像 Sybase 有 OUTPUT TO 命令,然后我们可以使用 MySQL 的 LOAD DATA LOCAL INFILE 命令加载它)或 SPOOL 或其他什么?

如果可行,您可以将假脱机命令添加到您的脚本中。否则,您可以 运行 sqlplus 交互地手动假脱机,然后手动 运行 您的脚本,然后手动退出。您也可以使手动方法自动化,但这超出了这个问题的范围。

您可以在命令行中指定文件名,如下所示:

sqlplus -L <username>/<pwd>@<tns service name> @"input_file.sql" outputfile

如果您在脚本中像这样打开输出文件:

spool &1

参考 here