GET_TABLE_NAME
有效对象
提取和复制
说明
使用 GET_TABLE_NAME 函数检索与正在处理的记录关联的源或目标表的全限定名称。此函数仅对 DML 和 DDL 操作中的表有效。要检索非表对象的全限定名称,请参见以下内容:
要仅返回部分全限定名称,另请参见以下内容:
GET_TABLE_NAME_ONLY GET_SCHEMA_NAME_ONLY GET_CATALOG_NAME_ONLY
数据库对象名称的返回方式与托管数据库中定义的名称完全相同,包括字母大小写。
仅当对象是表时,此函数才会返回值。否则,env_value_def 变量的 actual_length 返回 0。
语法
#include "usrdecs.h"
short result_code;
env_value_def env_value;
ERCALLBACK (GET_TABLE_NAME, &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 结尾的表名,例如 schema.table 或 catalog.schema.table,具体取决于数据库平台。
如果使用 SET_SESSION_CHARSET 将用户出口的字符会话设置为 ucharset.h 文件的 ULIB_CS_DEFAULT 中定义的操作系统默认字符集以外的值,则表名将在会话字符集中解释。
实际时长
返回的表名的字符串长度。实际长度不包括 NULL 终止符。如果对象不是表,则返回的实际长度为 0。
<value_truncated>
指示值是否被截断的标志(0 或 1)。如果表名加上空终止符的长度超过最大缓冲区长度,则会发生截断。
返回值
EXIT_FN_RET_INVALID_COLUMN
EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK