资讯专栏INFORMATION COLUMN

Oracle SQLcl - 替代 sqlplus 的利器

fai1017 / 2618人阅读

摘要:有没有更好的命令行工具呢其实早就提供了另一个用来替代的命令行工具,它就是今天的主角。钢哥注由于我用的是,每次只要进到这个目录,再执行即可启动了。钢哥注命令不需要曲敲全,会自动智能提示补全的,这一点比好太多了。

原文地址:https://wangfanggang.com/Oracle/sqlcl/

引言

对于从事 Oracle 技术开发的同学,肯定都要连接 Oracle 数据库,而 Oracle 自带的 sqlplus 命令行工具功能太弱了,不支持命令联想、数据显示不美观,还要安装什么 Oracle Client,导致很多同学不得不用其他工具(PL/SQL Developer、Oracle SQL Developer)来连接数据库。但 PL/SQL Developer 仅支持 Windows 平台,Oracle SQL Developer 虽然是跨平台的,但显得又太重了。

有没有更好的命令行工具呢?其实 Oracle 早就提供了另一个用来替代 sqlplus 的命令行工具,它就是今天的主角SQLcl

安装 SQLcl 准备工作

确保你的机器上安装了 Java 8 或以上版本(JRE 或 JDK 均可),下载地址在这里。

下载 SQLcl 安装包

SQLcl 的安装相当简单,首先去 Oracle 网站 下载 SQLcl 的安装包,截止到该文写作时为止,最新的 SQLcl 版本是 18.1.1(2018年4月12日发布的)。

配置 SQLcl

下载到本地以后是个 zip 压缩包,解压缩后进入 sqlcl/bin,里面的sql是给 Mac 或 Linux 平台准备的,而sql.exe是给 Windows 平台准备的。

钢哥注:由于我用的是 Mac,每次只要进到这个目录,再执行./sql即可启动 SQLcl 了。做得更干脆一点儿,由于我的 SQLcl 目录是/Users/kwang/sqlcl/bin,所以只要把这个目录添加到~/.bash_profile文件的PATH变量里即可,这样以后只要在命令行里输入sql,就自动启动SQLcl了。

以下是我的~/.bash_profile 文件内容

export PATH=/Users/kwang/sqlcl/bin:$PATH

想要立刻生效,别忘了source ~/.bash_profile

SQLcl 实战

让我们来看看 SQLcl 到底跟 sqlplus 有什么区别?

数据库连接
sql sys/welcome@localhost:1521:orcl as sysdba

清除屏幕

使用clear screen命令,整个世界清静了。

钢哥注:命令不需要曲敲全,SQLcl会自动智能提示/补全的,这一点比 sqlplus 好太多了。
help - 帮助命令

输入help命令可以展示相关帮助主题。

show pdbs - 显示命令

由于我用的是 Oracle Database 12c,可以用如下命令显示目前数据库中已有的 Plugin DB:

show pdbs

alter session - 切换会话

切换当前 session 到特定的 Plugin DB:

alter session set container=orclpdb1;
执行 sql 脚本

执行 sql 脚本,跟 sqlplus 一样用 @ 即可,运行以下命令,创建empdept表及插入演示数据。

@https://raw.githubusercontent.com/OraOpenSource/OXAR/master/oracle/emp_dept.sql

ddl - 生成对象定义语句

假如我们想快速生成emp这张表的定义语句,可以用如下命令:

ddl emp

键盘左键 - 编辑已输入的命令

使用过 sqlplus 的同学都知道,如果一个 sql 命令很长,需要分多行输入,这都没问题。但有时候再输入了很多行以后,突然想改一下之前输入的命令,这就尴尬了,你会发现根本没办法修改,只能大侠重新来过,WTF。。。

有了SQLcl就不存在这个问题了,它允许你用键盘左键进入快速编辑模式,然后就可以愉快地修改已经输入的命令了。

键盘 tab 键 - 智能提示/补全

如果在快速编辑模式下,输入表字段名的前几个字母,SQLcl会自动提示/补全剩余的字符,比sqlplus人性化多了。

键盘上下键 - 快速切换已输入的命令

这个没什么好说的。

sqlformat - 格式化 SQL 执行结果

默认样式下执行select * from emp,显示结果如下图所示:

执行show sqlformat可以看到当前格式化样式为:default

set sqlformat ansiconsole
让我们修改下显示结果的样式:

set sqlformat ansiconsole

再次执行select * from emp,格式如下:

set sqlformat csv - 输出成CSV格式

set sqlformat csv

再次执行select * from emp,格式如下:

set sqlformat - 恢复默认样式

set sqlformat

set head off - 清除 SQL 输出结果头信息行

set head off
history - 访问历史记录

可以用history命令查看已经输入过的历史命令。

想要再次输入某个历史命令,只需要在history命令后面加上对应的编号,然后再敲/执行即可。

history 15

结语

以上就是关于 Oracle SQLcl 简单的介绍和命令,用来替代 sqlplus 绝对绰绰有余了,希望对喜欢命令行操作的同学有所帮助,谢谢关注!


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/35299.html

相关文章

  • Oracle SQLcl - 替代 sqlplus 利器

    摘要:有没有更好的命令行工具呢其实早就提供了另一个用来替代的命令行工具,它就是今天的主角。钢哥注由于我用的是,每次只要进到这个目录,再执行即可启动了。钢哥注命令不需要曲敲全,会自动智能提示补全的,这一点比好太多了。 showImg(https://ws1.sinaimg.cn/large/006By2pOgy1frmnjhiw2yj30ke05adgl.jpg); 原文地址:https://...

    Mr_houzi 评论0 收藏0
  • Oracle总结【视图、索引、事务、用户权限、批量操作】

    摘要:前言在总结的第一篇中,我们已经总结了一些常用的相关的知识点了那么本篇主要总结关于视图序列事务的一些内容在数据库中,我们可以把各种的语句分为四大类数据操纵语言,,,数据定义语言,,,数据控制语言事务控制语言,,回滚点批量操作何为批量操作,就是 前言 在Oracle总结的第一篇中,我们已经总结了一些常用的SQL相关的知识点了...那么本篇主要总结关于Oralce视图、序列、事务的一些内容....

    lieeps 评论0 收藏0
  • Oracle总结【视图、索引、事务、用户权限、批量操作】

    摘要:前言在总结的第一篇中,我们已经总结了一些常用的相关的知识点了那么本篇主要总结关于视图序列事务的一些内容在数据库中,我们可以把各种的语句分为四大类数据操纵语言,,,数据定义语言,,,数据控制语言事务控制语言,,回滚点批量操作何为批量操作,就是 前言 在Oracle总结的第一篇中,我们已经总结了一些常用的SQL相关的知识点了...那么本篇主要总结关于Oralce视图、序列、事务的一些内容....

    junnplus 评论0 收藏0
  • Oracle总结【视图、索引、事务、用户权限、批量操作】

    摘要:前言在总结的第一篇中,我们已经总结了一些常用的相关的知识点了那么本篇主要总结关于视图序列事务的一些内容在数据库中,我们可以把各种的语句分为四大类数据操纵语言,,,数据定义语言,,,数据控制语言事务控制语言,,回滚点批量操作何为批量操作,就是 前言 在Oracle总结的第一篇中,我们已经总结了一些常用的SQL相关的知识点了...那么本篇主要总结关于Oralce视图、序列、事务的一些内容....

    xfee 评论0 收藏0
  • Oracle Linux And Oracle Database 11g R2 Intsallati

    摘要:最近工作中用到了作为测试的数据库,在装和折腾了很久,这篇文章就这两点对大家分享一些我安装过程中遇到的问题和注意点,暂时还未配置,稍后找时间补上现在网上找一篇好的文章好难,往往要在一个话题或技术上找多方资源东拼西凑,互相借鉴才能达成目的,原因 最近工作中用到了Oracle作为Intel测试的数据库,在装Oracle Linux和Oracle Database 11g R2折腾了很久,这...

    Warren 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<