返回首页

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

更新日期:2024年09月11日

gbase_change_user
 摘要:
更改用户,将参数db 的值作为gbase 连接句柄的当前默认数据库。在后续
查询中,对于不包含显式数据库区分符的表引用,该数据库是默认数据库。
如果不能确定已连接的用户或用户不具有使用数据库的权限,
gbase_change_user()将失败。在这种情况下,不会改变用户和数据库。
如果不打算拥有默认数据库,可将db 参数设置为NULL。
该命令总是会执行活动事务的ROLLBACK 操作,关闭所有的临时表,解锁所
有的锁定表,并复位状态,就像进行了新连接那样。即使未更改用户,也会出
现该情况。
 语法:
gs_bool gbase_change_user(GBASE *gbase,
const char *user,
const char *passwd,
const char *db);
 参数:
 返回值:
0 表示成功,非0 值表示出现错误。
 错误:
CR_COMMANDS_OUT_OF_SYNC 以不恰当的顺序执行了命令。
CR_SERVER_GONE_ERROR
GBase 服务器不可用。
CR_SERVER_LOST

在查询过程中丢失了与服务器的连接。



GBase 8a 程序员手册C API 篇
南大通用数据技术股份有限公司

- 11 -
CR_UNKNOWN_ERROR

出现未知错误。
ER_UNKNOWN_COM_ERROR
GBase 服务器未实施该命令
ER_ACCESS_DENIED_ERROR 用户或密码错误。
ER_BAD_DB_ERROR

数据库不存在。
ER_DBACCESS_DENIED_ERROR 用户没有访问数据库的权限。
ER_WRONG_DB_NAME

数据库名称过长。

您可以下列任一方式执行 SPL 例程或外部例程:

使用从 DB-Access 执行的单独的 EXECUTE PROCEDURE 或 EXECUTE
FUNCTION 语句

从另一 SPL 例程或外部例程显式地调用例程

在 SQL 语句中使用带有表达式的例程名称
执行例程的附加的机制仅支持 sysdbopen 和 sysdbclose 过程,DBA 可定义这些过程。当用
户通过 CONNECT 或 DATABASE 语句连接到数据库时,
如果 sysdbopen 过程的所有
者与数据库中存在的用户的登录标识符相匹配,则自动地执行那个例程。如果没
有 sysdbopen 例程的所有者与该用户的登录标识符相匹配,但存在 PUBLIC.sysdbopen 例
程,则执行那个例程。这种自动的调用使得 DBA 能够在连接时刻为用户定制会话环境。
当用户从数据库断开连接时,类似地调用 sysdbclose 例程。(要获取关于这些会话配置例
程的更多信息,请参阅《GBase 8s SQL 指南:语法》和 GBase 8s 管理员指南。)
外部例程是以 C 或某种其他外部语言编写的例程。

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

Query %s failed
错误出现原因
查询分布表的数据报错
分析与建议

GBase 8a MPP Cluster 产品手册
7 附录
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1647
分析与建议
手动确认该表是否正常