你造吗,Oracle SQLplus 也有History命令了

很多时候我们只能通过SQLPlus来操作数据库,而当一个SQL执行结果太多时,我们要回翻之前的SQL语句就会很麻烦,甚至可能由于ssh客户端或SQLPlus客户端的buffer限制,更早以前的语句被刷出了窗口,你就不得不重新敲一遍SQL,这样会带来很多麻烦。

在12c里,针对此Oracle推出了 History命令,这很像Shell中的history,语法为:

HIST[ORY] [n RUN | EDIT | DEL[ETE]] | [CLEAR | LIST]

该特性使用户能够从当前会话的历史列表中运行、编辑或删除以前使用的SQL * Plus,SQL或PL / SQL命令。 可以使用SET HISTORY命令在当前SQL * Plus会话中启用或禁用HISTORY命令。

默认是关闭的,并在每次会话断开连接后会自动关闭,当hist关闭后,hist 列表会被清空。如下示例:

HISTORY命令能够:

列出命令历史列表中的所有条目。 在命令历史列表中运行条目。 在命令历史列表中编辑一个条目。 从命令历史列表中删除一个条目。 清除命令历史记录列表中的所有条目。

Hist命令选项

  • His(tory):列出命令历史列表中的所有条目。
  • n:表示命令历史记录列表中的条目。 星号(*)表示命令历史列表中最后使用的命令。

说明

官方文档在这里说hist命令列出来的最后一条会加*号,但在我测试的过程中,一直都没有出现*号。虽然只是个小细节并不影响什么,大家也可以自己测一下。

  • run:从命令历史列表中执行条目n。
  • edit:可以使用默认的文本编辑器在命令历史列表中编辑条目n。 在命令历史列表中编辑条目n并保存更改后,将在列表末尾创建一个新条目。 当命令历史列表中的条目数量达到最大限制时,列表中最早的条目将被清除以容纳新条目。
  • del(ete):能够从命令历史记录列表中删除条目n。 从历史记录列表中删除条目后,列表将重新排序,以反映最近的更改。
  • clear:能够清除历史记录列表中的所有条目。 一旦清除,历史列表就无法恢复。
  • list:列出历史列表中的所有条目。 这与使用HIST [ORY]命令本身是一样的。

拓展用法

可以使用SQL * Plus DEFINE命令来定义变量_EDITOR,以保存首选文本编辑器的名称。 例如,要将EDIT使用的编辑器定义为vi,请输入以下命令:DEFINE _EDITOR = vi

举例如下

以下示例执行历史列表中的第五个条目:

HIST[ORY] 5 RUN

以下示例允许编辑历史列表中的第三个条目:

HIST[ORY] 3 EDIT

此时会进入vi编辑状态,对选择的历史条目可以做修改:

以下示例允许从历史记录列表中删除第二个条目:

HIST[ORY] 2 DEL[ETE]

此时第二条历史记录被删除。

以下示例允许从历史记录列表中删除所有条目:

HIST[ORY] CLEAR

以下示例列出历史列表中的所有条目。 这与使用HIST [ORY]命令本身是一样的。

HIST LIST

以下示例说明如何启用或禁用命令历史记录,以及如何检查命令历史记录状态:

在示例中hist 后面加数字表示hist列表的长度。默认值为100.

有了hist特性,的确会给我们的操作带来很多方便。

The End.

12.2体系架构图领取

绿色通道

Oracle 12.2 体系架构图在DTCC现场首发,受到广大技术朋友的喜欢。最近很多朋友们找我们申请,因此开放绿色通道,可以在线申请免费领取。

原文发布于微信公众号 - 数据和云(OraNews)

原文发表时间:2017-05-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Gaussic

使用IntelliJ IDEA开发SpringMVC网站(四)用户管理 顶

访问GitHub下载最新源码:https://github.com/gaussic/SpringMVCDemo

752
来自专栏Seebug漏洞平台

Python 安全 - 从 SSRF 到命令执行惨案

前两天遇到的一个问题,起源是在某个数据包里看到 url= 这个关键字,当时第一想到会不会有 SSRF 漏洞。 以前乌云上有很多从 SSRF 打到内网并执行命...

2879
来自专栏FreeBuf

网站管理软件 – AspxSpy2014 Final

受bin牛委托修改并发布,版权归bin牛所有。 Bug/建议提交:zcgonvh@rootkit.net.cn 祝各位马年大吉,财源滚滚。 免责声明: 本程序只...

1939
来自专栏Ryan Miao

使用idea debug多线程

最近采用hystrix远程访问webservice, 遇到一个重定向303的exception,想要debug一下,发现打了断点后总是被跳过。想到hystrix...

2988
来自专栏性能与架构

Redis 将发展为一个生态体系

Redis Labs 最近宣布了一个新的Redis扩展方式:Redis Module System Redis 现在可以通过 Lua 脚本进行扩展,但 Modu...

3348
来自专栏阿杜的世界

让你的Spring Boot工程支持HTTP和HTTPS

如今,企业级应用程序的常见场景是同时支持HTTP和HTTPS两种协议,这篇文章考虑如何让Spring Boot应用程序同时支持HTTP和HTTPS两种协议。

812
来自专栏技术博文

升级linux bash

bash环境变量存在任意代码执行漏洞:“通过CGI请求方式可以导致远程代码执行,进而导致服务器被入侵,危害严重,且官方公布补丁也被绕过”, 【漏洞影响】: 1)...

2649
来自专栏FreeBuf

文件监控程序V2.0改进版(网站防挂马好手)

前言 技多不压身,多掌握几种不同的编程语言,不但有助于开拓我们的视野,还可以让我们在工作时,自己写一些小程序来帮我们减少工作量。 前段时间给一个客户维护服务器,...

1655
来自专栏西安-晁州

nodejs初印象

初学Nodejs,特意在此记录学习过程,算是对这段时间的一个summary吧,相互勉励,共同进步嘛,Now Begin: 1、什么是nodejs nodejs ...

1850
来自专栏技术博客

ExtJs五(ExtJs Mvc登录优化)

继上一节中简单的实现了登录之后http://www.cnblogs.com/aehyok/archive/2013/04/20/3033296.html,现在我...

692

扫描关注云+社区