如何在SQL Plus假脱机输出文件中隐藏ACCEPT命令及输入内容?
解决SQL Plus假脱机输出中ACCEPT相关内容及错误提示的问题
作为SQL Plus新手碰到这种输出冗余的情况太正常了,我来给你几个实用的设置,帮你把这些多余内容从假脱机文件里清掉:
1. 先修正ACCEPT命令的语法错误
你看到的SP2-0003错误是因为ACCEPT命令格式不对,正确的ACCEPT命令应该是:
ACCEPT name CHAR PROMPT 'Enter name:'
注意关键字CHAR和PROMPT前面不要加多余的逗号,语法对了,错误提示自然就消失了。
2. 关闭多余的输出提示
除了SET VERIFY OFF,还需要设置这几个参数来屏蔽输入和命令本身的输出:
SET ECHO OFF:阻止SQL脚本里的命令(包括ACCEPT)被打印到输出文件中SET TERMOUT OFF:屏蔽终端的输出(比如Enter value for name:这类提示),注意要把这个设置放在ACCEPT命令之前;如果之后需要恢复终端输出,记得再设回SET TERMOUT ONSET FEEDBACK OFF:关闭查询返回的行数提示,让输出更干净
给你一个完整的脚本示例参考:
-- 先配置屏蔽多余输出的参数 SET VERIFY OFF SET ECHO OFF SET TERMOUT OFF SET FEEDBACK OFF -- 正确格式的ACCEPT命令 ACCEPT name CHAR PROMPT 'Enter name:' -- 开启假脱机输出 SPOOL output.txt -- 你的查询语句 SELECT * FROM sample WHERE UPPER(name) = UPPER('&name'); -- 关闭假脱机 SPOOL OFF -- 恢复终端输出(可选,若后续还要在终端操作的话) SET TERMOUT ON
3. 额外小提醒
如果脚本里有多个ACCEPT命令,记得每个都保证语法正确,并且把SET TERMOUT OFF放在所有ACCEPT命令之前,这样所有输入提示都不会被写到假脱机文件里。另外SET VERIFY OFF已经足够屏蔽old/new语句,配合上面的设置就能彻底解决你的问题啦。
内容的提问来源于stack exchange,提问作者BabaBaluchi
相关产品推荐
相关产品推荐

