sqlplus 客户端将远程结果重定向到本地文件

sqlplus client redirect remote results to a local file

我正在远程访问 oracle 数据库,我需要将结果重定向到本地 csv 文件。我正在设置一些选项,一个简单的 sql 查询语句,最后我重定向到一个本地文件。 基于此 link and this 我这样做了:

./sqlplus user/password@host:1521/SID <<< "SET PAGESIZE 40000 FEEDBACK OFF MARKUP HTML ON select * from mytable where ROWNUM <= 10" >> test_file.xls

这样做我得到了这个 Oracle 错误:SP2-0158:未知的 SET 选项 "select"。该错误是不言自明的。我知道我需要这些 set 语句来格式化我的输出。删除 SET 语句工作正常但输出。

为了输出,我没有插入SPOOL语句,因为文件会在远程机器上生成。

我需要做什么才能将结果保存到我的本地文件?

试试看:

./sqlplus user/password@host:1521/SID <<EOF >> test_file.xls
SET PAGESIZE 40000 FEEDBACK OFF MARKUP HTML ON 
select * from mytable where ROWNUM <= 10;
exit
EOF