我刚刚安装了 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供引用。
关于sql - 从文件读取并使用 sqlplus 在 1 行上保存到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30266668/