返回首页

gbase数据、南大通用产品文档:GBase8s处理参数化的用户定义的例程

更新日期:2024年09月11日

本部分描述如何处理带有系统描述符区域的参数化的用户定义的例程。下
列语句执行用户定义的例程:
EXECUTE FUNCTION 语句执行用户定义的函数(外部的和 SPL)。
EXECUTE PROCEDURE 语句执行用户定义的过程(外部的和 SPL)。

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 545 -


如果准备好的 EXECUTE PROCEDURE 或 EXECUTE FUNCTION 有指定作为未知
数目和水力学的输入参数的参数,
则您的 GBase 8s ESQL/C 程序可使用系统描述符区域来
定义输入参数。
执行参数化的函数
您处理用户定义的函数的输入参数的方式,
与处理 SELECT 语句的 WHERE 子句中
的输入参数的方式一样,如下:
执行非游标函数的方式,与执行单个 SELECT 语句的方式一样。
如果您在此时知道您编写的动态用户定义的函数的程序总是只返回一行,则您可使用
EXECUTE...USING SQL DESCRIPTOR...INTO 语句来提供来自系统描述符区域的参数值,
并执行该函数。

执行游标函数的方式,与执行返回一行或多行的 SELECT 语句的方式一样。
如果您在此时不确定您编写的动态用户定义的函数的程序是否只返回一行,则请定义
函数游标,并使用 OPEN...USING SQL DESCRIPTOR 语句来提供来自系统描述符区域的
参数值。

执行这些 EXECUTE FUNCTION 语句与执行 SELECT 语句执行唯一的区别在于,
您为非游标函数准备 EXECUTE FUNCTION 语句,而不是 SELECT 语句。
执行参数化的过程
要执行参数化的用户定义的过程,您可使用 EXECUTE...USING SQL DESCRIPTOR
语句来提供来自系统描述符区域的参数值,并执行该过程。您处理用户定义的过程输入参
数的方式,
与处理非游标函数中的输入参数的方式相同。
执行 EXECUTE PROCEDURE 语
句与执行 EXECUTE FUNCTION 语句(对于非游标函数)的唯一区别在于,您不需要为
用户定义个过程指定 EXECUTE...USING SQL DESCRIPTOR 语句的 INTO 子句。

性能日志主要关注外部资源的访问性能问题。
性能日志指的是数据库系统在运行时检测
物理资源的运行状态的日志,在对外部资源进行访问时的性能检测,包括磁盘、Hadoop
GBase 8c等外部资源的访问检测信息。在出现性能问题时,
可以借助性能日志及时的定位问
题发生的原因,能极大地提升问题解决效率。
日志文件存储路径
数据库节点的性能日志目录在“$GAUSSLOG/gs_profile”中各自对应的目录下。
日志文件
命名格式:
数据库节点的性能日志的命名规则:
postgresql-创建时间.prf
默认情况下,
每日0 点或者日志文件大于20MB 或者数据库实例
(数据库节点)
重新启
动后,会生成新的日志文件。
日志内容说明
数据库节点每一行日志内容的默认格式:
主机名称+日期+时间+实例名称+线程号+日志内容

GBase 8c 管理员指南
南大通用数据技术股份有限公司
125

 摘要:
执行由“NULL 终结的字符串”查询指向的SQL 查询。正常情况下,字符串
必须包含1 条SQL 语句,而且不应为语句添加终结分号(
‘;’
)或“\g”
。如果
允许多语句执行,字符串可包含多条由分号隔开的语句。
gbase_query()不能用于包含二进制数据的查询,应使用
gbase_real_query()取而代之
(二进制数据可能包含字符
‘\0’

gbase_query()
会将该字符解释为查询字符串结束)

 语法:
int gbase_query(GBASE *gbase, const char *q);
 参数:
 返回值:
如果查询成功,返回0。如果出现错误,返回非0 值。

GBase 8a 程序员手册C API 篇


- 34 -

南大通用数据技术股份有限公司
 错误:
CR_COMMANDS_OUT_OF_SYNC
以不恰当的顺序执行了命令。
CR_SERVER_GONE_ERROR

GBase 服务器不可用。
CR_SERVER_LOST


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


出现未知错误。