2017-06-22 87 views
0

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

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

这样做,我得到这个Oracle错误:SP2-0158:未知的SET选项 “选择”。错误是自我解释。我知道我需要这些设置语句来格式化我的输出。删除SET语句工作正常,但输出。

要输出,我不插入SPOOL语句,因为该文件将在远程计算机上生成。

我需要做什么才能获得结果到我的本地文件?

+1

我想你只需要'ON'和'select'之间的分号。然而,heredoc虽然可能更简单。为什么您认为远程机器上的假脱机输出?这是一个客户端命令。 –

+0

@AlexPoole我以前试过:SP2-0158:未知的SET选项“;” – learner

回答

1

试一下:

./sqlplus user/[email protected]:1521/SID <<EOF >> test_file.xls 
SET PAGESIZE 40000 FEEDBACK OFF MARKUP HTML ON 
select * from mytable where ROWNUM <= 10; 
exit 
EOF 
+0

@ ser3515709它的工作原理。 EOF在这种情况下究竟做了什么?另一个,输出当然是在html中。我的意愿是生成一个xls – learner

+0

它表示将所有内容重定向到命令,直到找到单词EOF。它可以是任何字或词组,如“FOO或<<! 此外,HTML输出是你问MARKD HTML ON,excel识别HTML,所以你的文件将在Excel中打开。 –

相关问题