返回首页

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

更新日期:2024年09月11日

如何使用更新游标的一个最终的假设示例提出一个问题,使用已建立的数据库不应出现该
问题,但在应用程序的初始设计阶段可能出现。
在该示例中,创建并操纵一个名为 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;


GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司
- 241 -
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;

SQLSetStmtOption 设置与 hstmt 相关的选项。
要为所有与特定 hdbc 关联的语句设置选项,应用程序可以调用 SQLSetConnectOption。
下表描述了 SQLSetStmtOption 的 SQLSTATE 和错误值。
SQLSTATE
错误值
错误消息
01000
-11001
General warning
01S02
-11007
Option value changed
08S01
-11020
Communication-link failure
24000
-11031
Invalid cursor state
S1000
-11060
General error
S1001
-11061
Memory-allocation failure
S1009
-11066
Invalid argument value
S1010
-11067
Function-sequence error
S1011
-11068
Operation invalid at this time
S1092
-11073
Option type out of range
S1C00
-11092
Driver not capable

GBA-02DR-0002
错误码
错误标识
错误信息
GBA-02DR-0002

Usage:
gcluster_reconfig.py
--addsg

...|--removesg

错误出现原因
运行脚本输入参数错误
分析与建议
按照提示输入参数并检查输入的SafeGroup 名字是否正确