SQL Developer中SPOOL脚本输出含SELECT语句的问题解决问询
问题描述
我有一个用SPOOL命令生成文件的SQL Plus脚本,在我的SQL Developer中执行时,生成的SPOOL文件仅包含SELECT语句的查询结果,符合预期;但其他用户执行该脚本时,生成的文件里会额外出现SELECT语句本身。
脚本内容如下:
set pages 0 set lines 32000 set trimspool on set feedback off set echo off set verify off define vspoolfile = '''c:\temp\spoolfile.txt''' spool &vspoolfile select description from query; spool off
其他用户生成的文件内容示例:
> select description from query Te behandelen Te plannen
我不希望文件中出现> select description from query这一行,怀疑是SQL Developer的设置差异导致的,想知道如何强制不输出该语句。
解决方法
1. 增强脚本的参数控制
在现有脚本的set命令中添加以下配置,从脚本层面强制关闭语句输出:
set sqlprompt '' set termout off
调整后的完整脚本:
set pages 0 set lines 32000 set trimspool on set feedback off set echo off set verify off set sqlprompt '' set termout off define vspoolfile = '''c:\temp\spoolfile.txt''' spool &vspoolfile select description from query; spool off set termout on -- 恢复终端输出,不影响后续操作
set sqlprompt '':清空SQL提示符(即示例中的>符号),避免其混入输出文件set termout off:禁止将SQL语句本身输出到SPOOL文件,仅保留查询结果
2. 调整SQL Developer全局设置
让其他用户检查并修改SQL Developer的默认配置:
- 打开SQL Developer,依次点击 工具 → 首选项 → 数据库 → 工作表
- 在「脚本运行」区域,取消勾选 “在输出中显示执行的SQL语句” 选项
- 点击“确定”后重启SQL Developer,再执行脚本即可
3. 规范脚本执行方式
提醒其他用户不要在工作表命令行中逐行执行脚本,而是通过 文件 → 打开 选择脚本文件,点击“运行脚本”按钮(绿色播放按钮的下拉选项),避免交互式执行产生额外输出。
内容的提问来源于stack exchange,提问作者Raf Van Camp
相关产品推荐
相关产品推荐

