GET_TABLE_NAME

有效對象

擷取與 Replicat

說明

使用 GET_TABLE_NAME 函數來擷取與所處理記錄相關聯之來源或目標表格的完整名稱。此函數僅適用於 DML 和 DDL 作業中的表格。若要擷取非表格物件的完整名稱,請參閱下列內容:

GET_OBJECT_NAME

若要僅傳回完整名稱的一部分,另請參閱:

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>

接受傳回之表格名稱的緩衝區指標。表格名稱為空值終止。

<max_length>

接受表格名稱的配置緩衝區長度上限。以 NULL 終止字串傳回此字串。

<source_or_target>

下列其中一個指示是否傳回來源或目標表格名稱。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

輸出

<buffer>

完整的空值終止表格名稱,例如 schema.table 或 catalog.schema.table,視資料庫平台而定。

如果使用者結束程式的字元階段作業使用 SET_SESSION_CHARSET 設定為作業系統預設字元集以外的值 (如 ucharset.h 檔案中的 ULIB_CS_DEFAULT 所定義),則表格名稱會在階段作業字元集中解譯。

實際長

傳回之表格名稱的字串長度。實際長度不包含空值終止字元。如果物件不是表格,則傳回的實際長度為 0。

<value_truncated>

指示值是否被截斷的旗標 (0 或 1)。如果表格名稱加上空值終止字元的長度超過緩衝區長度上限,就會發生截斷。

傳回值

EXIT_FN_RET_INVALID_COLUMN
EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK