返回首页

gbase数据、南大通用产品文档:GBase8s清理表

更新日期:2024年09月11日


GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司 - 235 -

如何使用更新游标的一个最终的假设示例提出一个问题,使用已建立的数据库不应出现该
问题,但在应用程序的初始设计阶段可能出现。
在该示例中,创建并操纵一个名为 target 的大型表。字符列 dactyl 无意中获得一些空值。应
删除这些行。此外,使用 ALTER TABLE 语句将新列serials 添加到表。此列将安装唯一的
整数值。下列示例展示您用来完成这些任务的 GBase 8s ESQL/C 代码:
EXEC SQL BEGIN DECLARE SECTION;
char dcol[80];
short dcolint;
int sequence;
EXEC SQL END DECLARE SECTION;

EXEC SQL DECLARE target_row CURSOR FOR
SELECT datcol
INTO :dcol:dcolint
FROM target
FOR UPDATE OF serials;
EXEC SQL BEGIN WORK;
EXEC SQL OPEN target_row;
if (sqlca.sqlcode == 0) EXEC SQL FETCH NEXT target_row;
for(sequence = 1; sqlca.sqlcode == 0; ++sequence)
{
if (dcolint < 0) /* null datcol */
EXEC SQL DELETE WHERE CURRENT OF target_row;
else
EXEC SQL UPDATE target SET serials = :sequence
WHERE CURRENT OF target_row;
}
if (sqlca.sqlcode >= 0)
EXEC SQL COMMIT WORK;
else EXEC SQL ROLLBACK WORK;

BackUp table vcname000001.test.t2 end
===================ParallelProcessTable
End============================
========================SaveBackUpInfo=======================

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
393
==========
注:如果不加参数-R,则默认并行度为4。

要想查询以某个词结尾的信息,可在查询词后面加上$符号,注意$符号与词之间不
能有空格。例如查询'班$',表示查询以班字结尾的信息。
示例
示例:搜索以培训班词组结尾的短信内容

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 946
gbase> SELECT * FROM sms WHERE contains(MB_Text, '"培训班"$');
+-------------+------------------------------------------------+
| MB_No | MB_Text |
+-------------+------------------------------------------------+
| 13521015341 | 本小学为6 到12 岁儿童开办语文、数学和英语培训班 |
+-------------+------------------------------------------------+
1 row in set