【发布时间】:2013-02-21 14:29:12
【问题描述】:
我试过了
select * from users
save D:\test.sql create;
但是 SQL plus 给了我“没有适当的结束” windows下oracle sql如何指定路径?
【问题讨论】:
我试过了
select * from users
save D:\test.sql create;
但是 SQL plus 给了我“没有适当的结束” windows下oracle sql如何指定路径?
【问题讨论】:
使用线轴:
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 实例,因此您可能需要自己做一些工作来调试我从内存中编写的内容。
【讨论】:
sqlplus.exe。
myoutputfile.txt 的文件中获得输出。如果您没有在预期的位置看到它,请执行搜索。你是如何执行 SQLPlus 的?从哪个目录?
与 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
【讨论】:
set pages 0、set trimspool on 等。但后来问题变了,我不得不追查别的东西!不过建议很好。
为了让答案 2 更容易,您还可以定义可以放置已保存文件的文件夹
spool /home/admin/myoutputfile.txt
select * from table_name;
spool off;
之后只用 nano 或 vi myoutputfile.txt,你会看到所有的 sql track。
希望能帮到你:)
【讨论】:
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
【讨论】:
在 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在架构schemaName中执行plssql脚本plsqlScript.sql,密码schemaPassword连接到SIDsid
> outputFile.log将sqlplus输出重定向到日志文件outputFile.log
【讨论】:
.sql 文件中进行假脱机。将标准输出重定向到文件可能会导致文件中出现不需要的 SQL 反馈输出。此外,您可以只在 .sql 文件中使用 quit(或 exit)。