GBase 8s 使用dbaccess工具调试SQL语句
GBase 8s的客户端工具相对缺乏,通过jdbc客户端工具也仅显示语法错误号码,而不具体指明实际位置。
而GBase 8s所自带的dbaccess工具能较好的显示实际位置。
以下示例的方式使用dbaccess调试SQL语句,语句已经写在1.sql文件中。
1,在命令行下,dbaccess登陆需要调试SQL所在的库
[gbasedbt@bd temp]$ dbaccess sysmaster
2, 在dbaccess界面中执行Query-language
3, 选择Choose 当前目录下的1.sql (显示为不带.sql后缀的1)
4, 加载1.sql的内容到当前界面下,执行操作Run
5, 当前sql语句有错误,切换到Modify菜单,执行修改操作。
可以看到最下面的错误提示:-201错误(语法错误),同时光标定位在错误的位置。
这里可以看到是"odb dbname" 少打了下划线,导致做分隔成了两个字符,造成语法错误,修改为正确的"odb_dbname"。 修改完成后 ESC 退出 Modify 状态。
6, 再次执行操作Run, 当前sql语句仍有错误,切换到Modify菜单,执行修改操作。
可以看到最下面的错误提示:26901错误(不可以别名再别名),同时光标定位在错误的位置。
这里可以看到"syssessions a ss"导致了歧义,应为"syssessions as s"。修改为正确的语句。ESC 退出Modify 状态。
7,再次执行操作Run
没有语法错误,sql语句执行成功。
8, 将修改后的sql语句保存为文件
我们在4-7步的操作中修改的sql语句均是在缓存中的,如果需要保存为正确的文件,需要使用Use-editor,默认使用vi编译器,使用w 命令保存为新文件或者覆盖当前文件。
另存为新文件1_new.sql。
[gbasedbt@bd temp]$ ll
总用量 8
-rw-rw-r-- 1 gbasedbt gbasedbt 507 2月 11 09:49 1_new.sql
-rw-rw-r-- 1 gbasedbt gbasedbt 516 2月 11 09:20 1.sql