SQL 窗口

进入 OceanBase 开发者中心(OceanBase Developer Center,ODC)的数据库管理页面后,单击上方导航栏中的 工作台 标签,在弹出下拉菜单中单击 SQL 窗口 以完成新建。

SQL 窗口中提供了可编辑脚本的 SQL 编辑区域,显示运行结果的执行记录页签与结果页签,同时 SQL 窗口也支持运行 PL 语句。

SQL窗口

SQL 编辑区域

在 SQL 窗口的编辑区域您可以体验到较多的细节。

  • 窗口中会对数据库的关键字进行不同颜色的标识。

  • 右键编辑区 SELECT 语句中的表、视图和函数名称时将提供一些常见操作键,同时将鼠标放置在表的名称上会显示字段信息。

  • 在对象列表中可将目标对象直接拖拽至 SQL 编辑区中,以方便您在语句中填充对象名。

  • 在 SQL 编辑区编写脚本时有输入自动提示功能以提升您编辑 SQL 语句的效率。

  • SQL 窗口的编辑区支持特殊符号异常识别,异常符号会被黄色波浪下划线进行标识。

说明

  • ODC 中共享 Session,相同连接只有一个 Session。ODC Oracle 模式下自动提交默认设置为开,如果您需要手动提交事务,可以在 会话属性 页面修改变量 autocommit 的值进行设置,详细操作请参见 会话管理

  • 事务手动提交模式下,需要设置变量 ob_trx_idle_timeout 大于等于设置的 SQL 查询超时时间,否则一个事务内两个 SQL 之间的执行间隔超过 ob_trx_idle_timeout 设置的时间,连接会终止。同时需要注意 ob_trx_idle_timeout 设置过大会导致该会话占用内存无法及时释放,需谨慎设置。

SQL 编辑区域

除编辑 SQL 语句时可体验上述细节,编辑区的工具栏中同时提供以下功能键:

功能

说明

运行

单击该按钮运行当前 SQL 窗口中所有的 SQL 语句。连接中有多个窗口且其他窗口中的语句在正在运行时,该按钮不可用。

运行当前语句

单击该按钮运行当前您选中的所有 SQL 语句或当前光标所在行的 SQL 语句。连接中有多个窗口且其他窗口中的语句在正在运行时,该按钮不可用。

提交

Oracle 模式下自动提交默认设置为关(OFF),所以您需要单击该按钮以手动提交当前事务。单击时会提示您当前连接采用共享 Session,提交操作会对所有窗口生效,单击 确认 后提交生效。MySQL 模式下自动提交默认设置为开(ON)将不展示该按钮。连接中有多个窗口且其他窗口中的语句在正在运行时,该按钮不可用。

回滚

Oracle 模式下自动提交默认设置为关(OFF),单击该按钮以回滚当前事务。单击时会提示您当前连接采用共享 Session,回滚操作会对所有窗口生效,单击 确认 后回滚生效。MySQL 模式下自动提交默认设置为开(ON)将不展示该按钮。连接中有多个窗口且其他窗口中的语句在正在运行时,该按钮不可用。

终止

单击该按钮终止正在运行的语句。

格式化

单击该按钮对选中的 SQL 语句或当前 SQL 窗口中的所有 SQL 语句进行统一的格式化(缩进、换行和高亮关键字等操作)。

查找/替换

在查找框内输入内容以对脚本进行检索,查找后可在替换框内输入内容以对查找内容进行替换。

撤销

将脚本回退到上一步操作执行的结果。

重做

执行 撤销 操作后,对脚本重新执行撤销前的操作。

大小写

提供 全部大写全部小写 首字母大写 三种效果,将您在脚本中选中的语句转换为对应形式。

缩进

提供 添加缩进删除缩进 两种效果,为您在脚本中选中的语句添加或删除包含的缩进。

注释

提供 添加注释删除注释 两种效果,将您在脚本中选中的语句转换为注释或转换为 SQL 语句。

IN 值转化

批量复制转化工具,适用于查询数据时对复制的行或列结果进行格式转化。
将批量数据粘贴在 SQL 编辑区后,选择复制的数据,单击 IN 值转化 按钮,即可转化成 in('A','B')格式。
  • 列值分隔符号为换行符。

  • 行值分隔符为空格或 TAB 值。

设置

  • Delimiter:在下拉列表中选择您想要的符号以完成界定符的设置。目前支持设置 ;///$$$ 等 5 种形式的界定符。

  • 查询结果限制:设置查询结果返回的条数,默认值为 1000 行。

保存

单击该按钮保存当前窗口中的脚本。之后您再次进入工作台可以直接打开保存好的脚本。每个用户只能看到自己保存的 SQL 脚本,且脚本名不允许重复。打开已保存的脚本后,您可以继续对该脚本进行编辑。

执行计划

查看选中的或当前光标所在的 SQL 语句在执行前系统预估的执行计划(EXPLAINPLAN 操作的结果),展示的执行数据可能与实际执行语句后的数据略有不同,您可以使用该功能评估 SQL 语句。

单击 执行计划 按钮,在 计划详情 页签中,单击 查看格式化信息 切换至格式化展示页面。

代码片段

提供内置语法片段和自定义语法片段供您查看和引用。详情请查看 代码片段

运行 PL 语句

SQL 窗口中也支持编辑 PL 语句,首先需要完成界定符的设置,然后在编辑区中编写 PL 语句,PL 语句编写完毕后使用选择的界定符作为结尾。

ODC 目前支持通过以下 3 种方式完成界定符的设置:

  • 在 SQL 编辑区的工具栏中单击 设置 按钮,在弹窗中的 Delimiter 选择框中选择您需要设定的界定符。

  • 个人设置 页面中的 界定符设置 选择框中选择您需要的界定符。

  • 在 ODC V2.4.1 版本后,您可以在编辑区中使用 DELIMITER 语句直接定义界定符,设置 中的 Delimiter 项会回显您设置的界定符。

在 SQL 中运行 PL 语句后,结果页签支持 DBMS 输出。

运行 PL 语句

执行记录页签

用户指南-SQL 窗口-执行结果页签

在执行记录页签中您可以查看当前连接进程中每次执行 SQL 语句的记录,包括 状态时间SQL 语句结果TRACE ID、耗时 执行详情(即执行计划)等信息。

功能

说明

TRACE ID

执行记录 ID。
注意

如 TRACE ID 为空,请确保该语句运行时 enable_sql_audit 系统参数及 ob_enable_trace_log 变量值均为 ON。

  1. 单击 会话 > 会话属性 > 会话变量,分别搜索 enable_sql_audit 和 ob_enable_trace_log 参数;

  2. 单击值列表下的 OFF 后,单击 编辑 图标,选择 ON 值后确定。

  3. 打开系统参数:

    obclient> alter system set enable_sal_audit='True';
    Query OK, 0 rows affected (0.06 sec)

耗时

ODC 中 耗时 信息由三部分组成,分别为:

  • 网络耗时:请求在网络传输上所花费的时间。

  • ODC 耗时:请求经过 ODC 处理所花费的时间。

  • DB 耗时:请求经数据库处理所花费的时间。

可将鼠标箭头放置在 耗时 信息后的提示图标上,弹出的提示信息将分段展示目标请求的三段耗时信息。

执行详情

默认展示文本计划。

执行详情 项下,单击 查看,可在 执行详情 页面查看 基本信息、耗时统计、 I/O 统计 和执行的 SQL 语句。

结果页签

在该页签可查看当前 SQL 语句的执行结果。结果页签中显示的结果集支持进行以下交互以方便日常开发工作:

  • 返回的结果集支持通过鼠标选中目标范围后直接通过快捷键复制至外部文件,可单击字段名称或行号直接选中整行或整列。或者亦可通过工具栏中的 导出 工具将结果集中的数据导出到本地文件。

  • 右键单元格,提供 复制 功能键供您直接将数据复制到外部文件中。

  • 当单元格中的数据过长导致无法全部显示时,可将鼠标箭头放置在目标单元格上然后单击单元格末尾出现的放大图标,然后在弹出的大字段展示弹窗中查看单元格中的全部数据。

  • 右键结果页签的标签名 (如 结果1),在弹出的列表中单击 固定 可让当前结果页签保持展示状态,当执行一条新的查询时当前结果不会被覆盖而是生成一个新的结果展示页签,以方便对比不同的查询结果。单击 解除固定 以取消目标结果页签的固定状态。

  • 结果集中每个字段名称后提供了筛选和排序按钮,可对单列的数据直接进行筛选和排序。

  • 支持在结果集中直接拖动列名以调整各字段的顺序。

执行结果页签

结果页签的导航栏中还提供了以下工具:

工具

说明

列模式

以表格的形式展示一行选中的数据。在 列模式 页面可以进行上一行、下一行的切换展示,对于列数量比较多场景,列模式 比较方便行数据的查看。参考步骤如下:

  1. 选中需查看的数据后,单击列模式按钮列模式 按钮;

  2. 在弹出的 列模式 页面中,可单击左右按钮查看上下行列值;

  3. 鼠标移动至某值字段,单击放大按钮放大按钮,可查看该列字段详情。

列管理

筛选在页面中展示的列。

回到开始

跳转至第一页。

上一页

向上翻页。

下一页

向下翻页。

跳至底部

跳转至最后一页。

编辑

单击 编辑 按钮开启对当前展示的结果集的编辑状态,编辑态中提供 添加一行复制当前行删除取消确认修改(当自动提交设置为开时,单击该按钮事务被自动提交) 和 修改并提交(自动提交设置为关时显示该按钮) 等编辑操作。您也可以在编辑态下双击目标数据直接进行修改,或是通过上述操作按钮进行快捷操作。

在编辑态中右键单元格,弹出的菜单中提供 复制设置为 Null 两个操作键。

说明

通过结果集是否支持编辑预判断功能,在 SQL 执行时获取到 ResultMetaData 信息,可在 SQL 执行结果出来时同步判断结果集是否可编辑:
  • 如当前结果集不支持编辑,编辑按钮隐藏,且提示当前结果集不可编辑;

  • 如当前结果集支持编辑,编辑按钮呈可点击态,可点击进入结果集编辑页面(支持编辑场景:单表/单视图查询)。

  • 目前不支持包含 SET 类型和 ENUM 类型的结果集编辑。

导出

将查询结果导出为 CSV 或 SQL 文件,您需要选择导出的 文件类型 字符集gbkutf8)。

计划

查看当前 SQL 语句执行后的实际资源消耗及执行计划,可快速判断 SQL 语句的优劣。