你造吗,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 条评论
登录 后参与评论

相关文章

来自专栏菩提树下的杨过

spring cloud 学习(8) - sleuth & zipkin 调用链跟踪

业务复杂的微服务架构中,往往服务之间的调用关系比较难梳理,一次http请求中,可能涉及到多个服务的调用(eg: service A -> service B -...

5098
来自专栏魏艾斯博客www.vpsss.net

WP-Optimize 插件安装使用教程-WordPress 数据库优化效果明显

2094
来自专栏Java成神之路

Maven之 环境搭建

这几天开始了maven的学习,看了孔浩老师的视频(http://pan.baidu.com/s/1o7bg2h0),以及黄勇大牛的博客(http://my.os...

801
来自专栏北京马哥教育

生产环境之“进程”两字

一、进程概念 运行中的程序的一个副本,是被载入内存的一个指令集合 进程ID(Process ID,PID)号码被用来标记各个进程UID、GID、和SELinux...

3498
来自专栏祝威廉

StreamingPro 支持类SQL DSL

受spark sql在喜马拉雅的使用之xql 这篇文章影响,我发现类似下面这种语法是极好的:

551
来自专栏积累沉淀

MySQL5.7.10下载及安装及配置

MySQL5.7.10下载及安装及配置 一.下载 自MySQL版本升级到5.7以后,其安装及配置过程和原来版本发生了很大的变化,下面详细介绍5.7版本MySQL...

2209
来自专栏文渊之博

数据库复制(一)--复制介绍

介绍: 在运行着的数据库驱动的应用程序中,SQL复制能解决许多问题。由于发送/订阅的模式不是十分容易理解,复杂的脚本语言和监视复制系统也是需要一定的思想在里面。...

1806
来自专栏jiajia_deng

使用七牛云对象储存缓存 wordpress 静态文件加速网站

1336
来自专栏北京马哥教育

ansible基础应用

一、运维主要工作 ? ansible聚集以上功能于一身,能够完整轻易的实现应用部署和批量命令功能,适用于主机数量不太多,再大的用puppet。 二、ansib...

3577
来自专栏开发技术

virtualBox安装centos,并搭建tomcat

  本文没什么难点,只是发现自己记忆不好,特别是搭建tomcat服务的时候,总是需要去重新查阅资料,特此就写这篇博客来加强自己的记忆,同时也给大家以参考;

843

扫码关注云+社区