访问系统目录

普通用户对系统目录的访问是只读的。具有 Connect 或 Resource 特权的用户不能变更目录,但他们可以使用标准 SELECT 语句以只读方式来访问系统目录表中的数据。

例如,下面的 SELECT 语句显示数据库中用户创建表的所有表名及对应的 tabid 代码:
SELECT tabname, tabid FROM systables WHERE tabid > 99
在使用 DB-Access 时,只显示您创建的表。要显示系统目录表,输入以下语句:
SELECT tabname, tabid FROM systables WHERE tabid < 100

可以使用 SUBSTRSUBSTRING 函数来仅选择源字符串的一部分。要按列显示表的列表,输入以下语句:

SELECT SUBSTR(tabname, 1, 18), tabid FROM systables

虽然用户 gbasedbt 可以修改大部分系统目录表,但不应该在这些表中更新、删除或插入任何行。修改系统目录表的内容可能会影响数据库的完整性。然而,您可以安全地使用 ALTER TABLE 语句来修改系统目录表的下一个扩展数据块的大小。更改下一个扩展数据块大小不会影响已存在的扩展数据块。

但是,对于 GBase 8s 的某些目录表,将条目添加至系统目录表是有效的。例如,对于 syserrors 系统目录表和 systracemsgs 系统目录表,DataBlade® 模块开发者可以直接插入位于这些系统目录表中的条目。