GET_SCHEMA_NAME_ONLY

有效对象

提取和复制

说明

使用 GET_SCHEMA_NAME_ONLY 函数检索与正在处理的记录关联的源或目标对象的所有者(例如方案)的名称,但不检索目录或容器(如果适用)或对象的名称。此函数对 DML 和 DDL 操作有效。

要返回表的全限定名称,请参见以下内容:

GET_TABLE_NAME

要返回非表对象的全限定名称,例如用户、视图或 <index>,请参见以下内容:

GET_OBJECT_NAME

要仅返回不合格的表或对象名称,请参见以下内容:

GET_TABLE_NAME_ONLY

GET_OBJECT_NAME_ONLY

要返回表或对象名称的其他部分,请参见以下内容:

GET_CATALOG_NAME_ONLY

数据库对象名称的返回方式与托管数据库中定义的名称完全相同,包括字母大小写。

语法

#include "usrdecs.h"
short result_code;
env_value_def env_value;
ERCALLBACK (GET_SCHEMA_NAME_ONLY, &env_value, &result_code);

缓冲区

typedef struct
{
char *buffer;
long max_length;
long actual_length;
short value_truncated;
short index;
short source_or_target;
} env_value_def;

输入

<buffer>

指向缓冲区的指针,用于接受返回的方案名称。名称以 NULL 结尾。

<max_length>

分配的缓冲区接受方案名称的最大长度。这以 NULL 终止的字符串形式返回。

<source_or_target>

以下项之一,指示是返回源方案还是目标方案名称。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

输出

<buffer>

以 null 结尾的全限定方案名。

如果使用 SET_SESSION_CHARSET 将用户出口的字符会话设置为 ucharset.h 文件的 ULIB_CS_DEFAULT 中定义的操作系统默认字符集以外的值,则会在会话字符集中解释方案名称。

<actual_length>

返回名称的字符串长度。实际长度不包括 NULL 终止符。

<value_truncated>

指示值是否被截断的标志(0 或 1)。如果方案名称的长度加上空终止符超过最大缓冲区长度,则会发生截断。

返回值

EXIT_FN_RET_INVALID_COLUMN
EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK