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

sqlplus客户端将远程结果重定向到本地文件,sql,oracle,terminal,sqlplus,Sql,Oracle,Terminal,Sqlplus,我正在远程访问oracle数据库,需要将结果重定向到本地csv文件。我正在设置一些选项,一个简单的sql查询语句,最后我重定向到一个本地文件。 基于此,我做到了: ./sqlplus user/password@host:1521/SID <<< "SET PAGESIZE 40000 FEEDBACK OFF MARKUP HTML ON select * from mytable where ROWNUM <= 10" >> test_file.xls

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

./sqlplus user/password@host:1521/SID <<< "SET PAGESIZE 40000 FEEDBACK OFF MARKUP HTML ON select * from mytable where ROWNUM <= 10" >> test_file.xls
/sqlplus用户/password@host:1521/SID test_file.xls
这样做,我得到这个Oracle错误:SP2-0158:未知设置选项“选择”。这个错误是不言自明的。我知道我需要这些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 
/sqlplus用户/password@host:1521/SID test_file.xls
将PAGESIZE设置为“关闭HTML标记”

从mytable中选择*,其中ROWNUM我想您只需要在
ON
select
之间加一个分号。不过,herdeoc可能更易于管理。为什么您认为远程机器上的滑阀输出?这是一个客户端命令。@AlexPoole我以前试过:SP2-0158:unknown SET option“;@ser3515709有效。在这种情况下,EOF到底做了什么?还有一个,输出当然是html格式的。我的意愿是生成一个xlsIt,将所有内容重定向到命令,直到找到单词EOF。它可以是任何单词或字符,如