Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在windows中将oracle sql结果输出到文件中?_Sql_Oracle_Sqlplus - Fatal编程技术网

如何在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

我试过了

但是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
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
连接到SID
SID
在模式
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