如何在windows中将oracle sql结果输出到文件中?
我试过了 但是SQL plus给了我“没有正确的结尾” 如何在windows中的oracle sql中指定路径?使用假脱机:如何在windows中将oracle sql结果输出到文件中?,sql,oracle,sqlplus,Sql,Oracle,Sqlplus,我试过了 但是SQL plus给了我“没有正确的结尾” 如何在windows中的oracle sql中指定路径?使用假脱机: select * from users save D:\test.sql create; 请注意,这将在运行SQL*Plus的目录中创建myoutputfile.txt 当SQLPlus启动并输出到名为“output.txt”的文件时,如果需要从SQL文件(例如“tmp.SQL”)运行此命令: tmp.sql: spool myoutputfile.txt selec
select * from users
save D:\test.sql create;
请注意,这将在运行SQL*Plus的目录中创建myoutputfile.txt
当SQLPlus启动并输出到名为“output.txt”的文件时,如果需要从SQL文件(例如“tmp.SQL”)运行此命令:
tmp.sql:
spool myoutputfile.txt
select * from users;
spool off;
命令:
select * from users;
请注意,现在我面前没有Oracle实例,因此您可能需要自己做一些工作来调试我从内存中编写的内容。与Marc非常相似,唯一不同的是我将假脱机到如下参数:
sqlplus -s username/password@sid @tmp.sql > output.txt
然后调用SQLPLUS作为
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
为了使答案2更简单,您还可以定义一个文件夹,用于放置保存的文件
sqlplus -s username/password@sid @tmp.sql /tmp/output.txt
之后,仅使用nano或vi myoutputfile.txt,您将看到所有sql跟踪
希望有帮助:)
此查询将在D:\test\test.txt中假脱机sql结果,在windows 10和windows server 2012上具有相同的任务。 我找到了以下解决方案:
spool "D:\test\test.txt"
select
a.ename
from
employee a
inner join department b
on
(
a.dept_id = b.dept_id
)
;
spool off
解释
echo quit |
在脚本完成后发送quit命令退出sqlplus
sqlplus模式名/schemaPassword@sid@plsqlScript.sql
使用密码schemaPassword
连接到SIDSID
在模式schemaName
中执行plssql脚本plsqlScript.sql
>outputFile.log
将sqlplus输出重定向到日志文件outputFile.log
谢谢,但是我可以问一下spool文件myoutputfile.txt在哪里吗?另外,用户没有运行spool的权限怎么办?我们如何指定输出文件的路径/文件夹,尤其是在Windows中?我从来没有幸运地指定过spool的写入位置,除了从spool输出的目录运行sqlplus.exe
。我不理解您的问题。在SQL*plus中,准确键入我在解决方案中编写的内容。您将在名为myoutputfile.txt的文件中获得输出。如果您没有在预期的位置看到它,请执行搜索。您如何执行SQLPlus?从哪个目录?请注意,如果您没有在spool文件名上指定文件扩展名(如示例中的.txt),扩展名.lst将自动附加到.yesp。我本来打算添加设置页面0
,设置页面0
,等等。但后来问题变了,我不得不去做别的事情!不过建议不错。谢谢John,你的版本返回了干净的SQL输出。我想最好是在.SQL
文件中执行假脱机操作。将标准输出重定向到文件可能会导致文件中出现不需要的SQL反馈输出。此外,您还可以在.sql
文件中退出(或退出
)。
spool "D:\test\test.txt"
select
a.ename
from
employee a
inner join department b
on
(
a.dept_id = b.dept_id
)
;
spool off
echo quit |sqlplus schemaName/schemaPassword@sid @plsqlScript.sql > outputFile.log