我试过
select * from users
save D:\test.sql create;
但是SQL plus给了我"没有正确结束" 如何在windows中的oracle sql中指定路径?
答案 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