oracle - 尽管我将输出假脱机在文件中,oracle 仍显示选择查询的输出
问题描述
我正在使用下面的代码将密码保存在文件中,但在这样做的同时,我也在输出中获取了该密码,这是我想避免的。请建议我们是否有任何方法可以假脱机输出并且不打印它。
set heading off;
spool abc.txt
select password from sys.user$ where username='test';
spool off;
Output:
AH45****mn
解决方案
将此添加到脚本的顶部:
set termout off
从文档中:
要假脱机脚本中的命令生成的输出而不在屏幕上显示输出,请使用
SET TERMOUT OFF
.SET TERMOUT OFF
不影响交互式运行的命令的输出。
和:
SET TERMOUT OFF
禁止显示,以便您可以在不显示在屏幕上的情况下从脚本假脱机输出。如果不需要假脱机到文件和写入终端,
SET TERMOUT OFF
请在 SQL 脚本中使用以禁用终端输出。
如果您使用工作表中的这些命令从 SQL Developer 运行此命令,通过“运行脚本 (F5)”,那么它将无法termout
正确执行该设置。但是如果你将它保存到一个文件然后运行它,它会; 因此,如果您使用命令创建一个文件,例如,your_script.sql
那么在工作表中您将拥有:
@your_script
或者
@/path/to/your_script
并用 F5 运行它。
在 SQL*Plus 中,您可以执行相同的操作,@your_script
从交互式提示符或直接从命令行运行它(exit
如果您这样做,您可能希望添加到脚本的末尾):
sqlplus @your_script
这将提示输入用户名和密码;或者
sqlplus user @your_script
这只会提示输入密码。(或者您可以在命令行上提供密码,但这不是一个好主意。)
您还可以添加-s
静默标志:
sqlplus -s -l user @your_script
这将隐藏所有输出,包括应用程序横幅和密码提示 - 它仍会等待您输入密码,只是不会看到提示。如果您这样做,该-l
标志很有用;如果您输入错误的密码,它将退出,而不是(默默地)等待您重新输入用户名和密码。
推荐阅读
- javascript - 我想编辑从外部源加载的页面元素
- jquery - jquery append' 在一个对象上调用
- mysql - sql - 如何进行此查询?
- javascript - 如何从 localStorage 中检索多个键和值
- java - 我收到一个错误。(图像文件的真实路径)
- owl - 如何在 protege 中正确设置“仅”限制?
- mapbox - Mapbox如何编写带有停止的图层绘制属性以便它可以支持特征状态?
- angular - 打开和关闭 ng-bootstrap 警报组件 (ngb-alert)
- java - Spring Boot 集成测试覆盖自定义 .properties 文件
- android - Room 是否有任何 readResolve/writeReplace 等效项?