很多时候我们只能通过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命令能够:
列出命令历史列表中的所有条目。
在命令历史列表中运行条目。
在命令历史列表中编辑一个条目。
从命令历史列表中删除一个条目。
清除命令历史记录列表中的所有条目。
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.
Oracle 12.2 体系架构图在DTCC现场首发,受到广大技术朋友的喜欢。最近很多朋友们找我们申请,因此开放绿色通道,可以在线申请免费领取。
考虑成本因素,我们会收取快递费,海报免费!为方便操作,全国快递费统一定为15元(含包装纸筒费用)。(北京上门取免费,可联系小助手)
需要的朋友请扫码填写表单,并向支付宝账号(1604371208@qq.com)转账成功后将转账截图微信发至云和恩墨小助手(sunx5126)。该绿色通道开放截止5月22号中午12:00.
加入"云和恩墨大讲堂"微信群,参与讨论学习
搜索 盖国强(Eygle) :eyygle,或者扫描下面二维码,备注:云和恩墨大讲堂,即可入群。每周与千人共享免费技术分享,与讲师在线讨论。