如何将oracle sql结果输出到windows中的文件中?

时间:2013-03-06 16:58:53

标签: sql oracle sqlplus

我试过

select * from users 
save D:\test.sql create;

但是SQL plus给了我"没有正确结束" 如何在windows中的oracle sql中指定路径?

5 个答案:

答案 0 :(得分:49)

使用后台打印:

spool myoutputfile.txt
select * from users;
spool off;

请注意,这将在运行SQL * Plus的目录中创建myoutputfile.txt。

如果需要在SQLPlus启动时从SQL文件(例如“tmp.sql”)运行它并输出到名为“output.txt”的文件:

tmp.sql:

select * from users;

命令:

sqlplus -s username/password@sid @tmp.sql > output.txt

请注意,我现在面前没有Oracle实例,所以你可能需要做一些自己的工作来调试我从内存中写的内容。

答案 1 :(得分:14)

与Marc非常相似,我唯一的区别就是假脱机到这样的参数:

WHENEVER SQLERROR EXIT 1
SET LINES 32000
SET TERMOUT OFF ECHO OFF NEWP 0 SPA 0 PAGES 0 FEED OFF HEAD OFF TRIMS ON TAB OFF
SET SERVEROUTPUT ON

spool &1

-- Code

spool off
exit

然后将SQLPLUS称为

sqlplus -s username/password@sid @tmp.sql /tmp/output.txt

答案 2 :(得分:2)

只是为了使答案2更容易,您还可以定义可以放置已保存文件的文件夹

    spool /home/admin/myoutputfile.txt
    select * from table_name;
    spool off;

之后只有nano或vi myoutputfile.txt,你会看到所有的sql轨道。

希望是帮助:)

答案 3 :(得分:2)

spool "D:\test\test.txt"

select  
  a.ename  
from  
  employee a  
inner join department b  
on  
(  
  a.dept_id = b.dept_id  
)  
;  
spool off  

此查询将sql结果假脱机到D:\ test \ test.txt

答案 4 :(得分:1)

在Windows 10和Windows Server 2012上具有相同的工作。 我找到了以下解决方案:

echo quit |sqlplus schemaName/schemaPassword@sid @plsqlScript.sql > outputFile.log

说明

echo quit |发送quit命令以在脚本完成后退出sqlplus

sqlplus schemaName/schemaPassword@sid @plsqlScript.sql在模式plsqlScript.sql中使用连接到SID schemaName的密码schemaPassword执行plssql脚本sid

> outputFile.log将sqlplus输出重定向到日志文件outputFile.log