SQL and XQuery Editor(简称:SQE)是一个供用户创建一个或多个脚本语句,同时也支持嵌入式语句类型的脚本编辑器。创建的文件保存为 *.sql 的文件类型,以方便之后的导入。在编辑器的上方提供给用户数据库的连接信息,用户可以自行设置脚本终端符号。目前,Data Studio 4.1 版本的 SQE 支持脚本编辑、脚本运行、脚本断点设置、结果集展示、内容辅助信息和语法解析提示等功能。如下图 1 所示 是 SQL and XQuery Editor 的主界面。
图 1. SQL and XQuery Editor 主页面
回页首
在 Data Studio 3.2 版本中,已经平稳的把 Control Center 的 Command Editor 迁移到 SQL and XQuery Editor 上,并且在原有功能的基础上增加了支持 SQL 语句校验、内容提示、DML SQL 格式化、SQL 语句性能监控、SQL 语句调优、SQL 脚本作为 task 运行等功能。为了满足用户更多的需要,我们在 Data Studio 4.1 版本又做出了更大的举动,增加了脚本断点设置、多样化的运行方式、自动选择执行错误的脚本、断点持久化等功能。以下我们具体介绍下 Data Studio 4.1 SQE 的新功能。
回页首
使用过 Eclipse 的用户想必清楚,在一个 Java 项目中,我们可以在 Java 编辑器上通过双击或者右键菜单栏中选择的方式设置断点来调试 Java 程序。目前,在 Data Studio 4.1 版本中,我们把断点调试的方式运用到了 SQE 上,以便调试 SQL 脚本。用户可以通过双击或右键菜单的方式添加或者删除断点,这个功能可以帮助用户在复杂或者内嵌的脚本中控制脚本执行的终止点,用户可以自由选择执行脚本的内容,而不需要一次性执行完所有的脚本。
以下是一个真实的案例教大家如何使用 Data Studio 的 SQE 断点调试。实例 SQL 脚本,如表 1 所示:
表 1. SQL 脚本
Supported DDL | drop index ix1; drop table t1; drop tablespace ts1; create tablespace ts1; create table t1 (col1 integer, col2 integer, col3 integer) in ts1; create index ix1 on t1(col1); |
如表所示:这个脚本总共有六条 SQL 语句,如果说用户首先想要运行前三条语句,那么就需要在第四条语句的起始位置加一个断点,如下图 2 所示:
图 2. 断点设置
点击右上方的运行按钮 ,你会发现只执行断点设置之前的语句(前三条 SQL 脚本)。如下图 3 所示,在 SQL 结果集视图中,你可以看到运行的状态:
图 3. 脚本运行结果集
SQE 支持多断点设置,不过要运行超过一个断点的脚本,需要配合第二种运行方式从光标位置开始运行语句(Run statements starting from the cursor location)一起搭配使用。在下文将详细介绍。
可能用户遇到过这样的问题,为什么我输入的脚本内容没有问题,但是编辑器的解析却报错呢?很有可能是设置的终端符号和您输入的终端符号不匹配的问题。有的 DBA 喜欢用 @ 作为 SQL 终端符号,有的却喜欢用;,我们产品可以根据您的爱好做个性化的定制。具体参加下图 4 所示,我们可以切换到验证的页面来设置语句终止符。
图 4. 脚本终端符号设置
回页首
这种方式是最普遍的脚本运行方式,在 Data Studio 3.2 中就已经存在这个运行方式,这个方式同点击图标 的效果是一样的。在不加断点的情况下,你可以选择这个运行方式执行所有您所有输入的脚本。如果您添加了断点,运行这个方式会执行在断点设置之前的脚本。您可以点击运行图标的下拉列表选择这种运行方式。如下图 5 所示:
图 5. 运行所有语句
2. 从光标位置开始运行语句(Run statements starting from the cursor location)
如上文所提,这种方式可以配合断点一起使用,支持多断点的模式。如下图所示:在第四条 SQL 语句和第六条 SQL 语句前各加一个断点,然后把光标停留在第四条语句的起始位置(其实您可以将光标停留在第四条语句的任意位置,我们会在执行的时候对您的设置进行扩展判断)然后选择第二种运行方式“从光标位置开始运行语句”,从 SQL 结果集可以看出,运行的语句是从光标开始到第二个断点之间的 SQL 脚本。
图 6. 从光标位置执行语句
第三种运行脚本的方式是运行选定的 SQL 语句,顾名思义,在 SQL 编辑器中,选择哪条语句,这种运行方式就唯独运行选定的语句。这个方式的好处是可以选择执行失败的语句,进行单独的执行,而不用重复的执行所有的语句。另外,该文本还支持扩展用户的选择,如果一条 SQL 语句很长的话,不用选择整个 SQL 语句,只要选择部分,SQE 在运行时会自动扩展到整个脚本。
图 7. 运行选定语句
回页首
以前,当脚本执行后,失败的脚本不能在 SQE 上被高亮出来以便告诉用户是哪个具体的语句导致的失败。因此,用户在 SQL 编辑器里很难在一定时间里确定失败的语句,尤其是当脚本相当的复杂和庞大的时候。为了帮助用户在 SQE 里轻松地识别失败的语句,该产品提供了一个“出错-停止”的功能来解决用户的困惑。用户可以在配置选项卡中设置出错时选择“停止”方式,这样执行到失败的 SQL 语句时,就会自动停止到这个语句并且高亮这个错误 SQL 语句。用户可以对错误的语句修改后,结合第三种运行方式来单句调试错误语句,这样可以大大提高创建脚本的效率,避免重复性的脚本运行。
图 8. 选择执行失败的 SQL 语句
回页首
目前,我们支持断点的持久化,如果说用户在加入断点后,关闭 SQL 编辑器甚至说关闭 Data Studio,在下次打开 SQL 编辑器或者 Data Studio 的时候,我们之前加入的断点仍然展现在 SQE 中并可用。但是,目前我们不支持导入和导出方式对断点的持久化的支持。
回页首
由于 SQL 编辑器的一行可以包含多个 SQL 语句,但是目前,一个断点只适用于添加在一个 SQL 语句。如果用户在多个 SQL 语句前加设断点,那么断点会默认停在第一个 SQL 语句前。但是这种方式是不推荐的,我们最好在 SQL 编辑器上一行包含一条 SQL 语句,以防断点的模棱两可。
图 9. 断点设置的局限性
回页首
本文通过对 Data Studio 4.1 的 SQL and XQuery Editor 新功能的介绍,想必用户对断点调试和脚本运行等功能已有了初步的了解,同时我们也尽可能地在讲解的过程中向您展示更多的 Data Studio 使用技巧,缩短用户对 Data Studio 的学习周期,使大家可以更快更容易的使用 Data Studio 工具管理数据库和开发数据库应用程序。相信读者在看完本文后,对 Data Studio 会有更深的认识。无论如何,本文只是抛砖引玉,用户只有在自己的亲身体验中,才能感觉到 Data Studio 强大的数据库操作功能。
回页首