返回首页

gbase数据、南大通用产品文档:GBase8sSYSTABAMDATA

更新日期:2024年09月11日

systabamdata 系统目录表存储使用主访问方法创建的表的特定于表的散列参数。
systabamdata 表具有以下列。
表 32. SYSTABAMDATA 表列描述

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 63 -


类型
解释
tabid
INTEGER
表的标识代码
am_param
CHAR(256)LVARCHAR(8192)
访问方法参数选项
am_space
VARCHAR(128)
保存数据值的存储空
间的名称

am_param 列存储确定主要访问方法如何访问给定表的配置参数。am_param 列表中
的每个配置参数都具有 keyword=value 或 keyword 格式。
am_space 列指定表的位置。它可能在数据库服务器内的熟文件、另一个数据库或智能
大对象空间中。
tabid 列是 systables 表的主键。此列具有索引并且必须包含唯一值。

ALTER TABLE...ADD FULLTEXT INDEX 语句建立全文索引
语法格式
建表后通过修改表定义的方法指明哪一列需要建立全文索引。
ALTER TABLE table_name ADD FULLTEXT [INDEX]
index_name(column_name) [INDEX_DATA_PATH='path']
表5- 36 参数说明
参数名称


index_name
索引名(索引名表级唯一,索引名将不区分大小写)。
table_name
表名。
column_name
索引列列名,支持CHAR、VARCHAR 或TEXT 类型。
INDEX_DATA_PATH
可选项,设置索引数据路径标志。如不填写,则索引数据保
存在默认路径上。
path
索引数据存放路径,此路径应为实际已存在的路径。
注意
执行用户需要对path 指定的存放索引数据的目录具有读写权限。
示例
示例1:修改表定义在MB_Text 列建立全文索引。
gbase>
DROP TABLE IF EXISTS sms;
Query OK, 0 rows affected
gbase> CREATE TABLE sms (MB_No char(11),MB_Text varchar(1000) DEFAULT
NULL);
Query OK, 0 rows affected
gbase> ALTER TABLE sms add fulltext index idx_t (MB_Text)
INDEX_DATA_PATH='/home/fti/';
Query OK, 0 rows affected
Records: 0
Duplicates: 0
Warnings: 0

返回集合中元素的个数,不计算被DELETE的元素
l
可变数组的COUNT
COUNT始终等于LAST,如果使用EXTEND或TRIM增加或减小可变数组,则COUNT也
随之改变。
CREATE OR REPLACE PROCEDURE P_5_23 AS
TYPE NumList IS VARRAY(10) OF INTEGER;
n NumList := NumList(1,3,5,7);
BEGIN
DBMS_OUTPUT.PUT('n.COUNT = ' || n.COUNT || ', ');
DBMS_OUTPUT.PUT_LINE('n.LAST = ' || n.LAST);
n.EXTEND(3);
DBMS_OUTPUT.PUT('n.COUNT = ' || n.COUNT || ', ');
DBMS_OUTPUT.PUT_LINE('n.LAST = ' || n.LAST);
n.TRIM(5);
DBMS_OUTPUT.PUT('n.COUNT = ' || n.COUNT || ', ');
DBMS_OUTPUT.PUT_LINE('n.LAST = ' || n.LAST);
END;

--Result:
--n.COUNT = 4, n.LAST = 4
--n.COUNT = 7, n.LAST = 7
--n.COUNT = 2, n.LAST = 2

l
内嵌表的COUNT
嵌套表的COUNT=LAST.除了当在嵌套表中DELETE元素,此时COUNTCREATE OR REPLACE PROCEDURE P_5_24 AS
TYPE NumList IS TABLE OF INTEGER;
n NumList := NumList(1,3,5,7);
BEGIN
DBMS_OUTPUT.PUT('n.COUNT = ' || n.COUNT || ', ');

GBase 8s PL/SQL手册
南大通用数据技术股份有限公司
- 82 -

DBMS_OUTPUT.PUT_LINE('n.LAST = ' || n.LAST);
n.DELETE(3); -- Delete third element
DBMS_OUTPUT.PUT('n.COUNT = ' || n.COUNT || ', ');
DBMS_OUTPUT.PUT_LINE('n.LAST = ' || n.LAST);
n.EXTEND(2); -- Add two null elements to end
DBMS_OUTPUT.PUT('n.COUNT = ' || n.COUNT || ', ');
DBMS_OUTPUT.PUT_LINE('n.LAST = ' || n.LAST);
FOR i IN 1..8 LOOP
IF n.EXISTS(i) THEN
IF n(i) IS NOT NULL THEN
DBMS_OUTPUT.PUT_LINE('n(' || i || ') = ' || n(i));
ELSE
DBMS_OUTPUT.PUT_LINE('n(' || i || ') = NULL');
END IF;
ELSE
DBMS_OUTPUT.PUT_LINE('n(' || i || ') does not exist');
END IF;
END LOOP;
END;

--Result:
--n.COUNT = 4, n.LAST = 4
--n.COUNT = 3, n.LAST = 4
--n.COUNT = 5, n.LAST = 6
--n(1) = 1
--n(2) = 3
--n(3) does not exist
--n(4) = 7
--n(5) = NULL
--n(6) = NULL
--n(7) does not exist
--n(8) does not exist