# 運算式標頭

在資料欄運算式中使用標頭來保留變更中繼資料，例如操作名稱或來源串流位置。

`Q_H_` 標頭可用於 SaaS 管理的登陸、湖登陸和複寫工作。當 [建置運算式](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Building-expressions.htm) 時，從編輯器的 頁首 清單插入頁首。下表說明來源端點在完整載入與變更處理期間的適用性及值。

## 所有來源端點的標頭

一般標頭與處理階段值

| 標頭與資料類型 | 變更處理期間的值 | 完整載入期間的值 |
| --- | --- | --- |
| `Q_H_CHANGE_SEQ`<br><br>`STRING(50)` | 跨任務變更資料表的單調遞增變更序列。結合時間戳記與前置零的變更計數器，以在工作內為變更排序。 | 為空 |
| `Q_H_STREAM_POSITION`<br><br>`STRING(50)` | 來源變更串流中的位置，通常為 SCN 或 LSN。識別來源串流位置，而非時間戳記或可跨任務比較的序列。 | 空字串。 |
| `Q_H_TIMESTAMP`<br><br>`DATETIME(0)` | 變更作業的時間戳記。這是操作時間戳記，而不是交易提交時間戳記。 | 目前的時間戳記。 |
| `Q_H_TRANSACTION_ID`<br><br>`STRING(50)` | 包含變更的交易，以十六進位 128 位元交易識別碼表示。此 ID 不保證是唯一的。 | 為空 |
| `Q_H_COMMIT_TIMESTAMP`<br><br>`DATETIME(0)` | 來源交易認可時間戳記，如處理執行階段所表示。不同於 `Q_H_DB_COMMIT_TIMESTAMP` 中的來源資料庫伺服器時間。 | 目前的時間戳記。 |
| `Q_H_DB_COMMIT_TIMESTAMP`<br><br>`DATETIME(0)` | 依據來源資料庫伺服器時間的來源交易認可時間戳記。 | NULL |
| `Q_H_OPERATION`<br><br>`STRING(50)` | `INSERT`、`UPDATE` 或 `DELETE`。 | `INSERT`. |

變更序列結合了格式化為 `YYYYMMDDHHmmSShh` 的時間戳記與 19 位數、前綴為零的變更計數器。時間戳記欄位為年、月、日、時、分、秒以及百分之一秒。當計數器增加時，時間戳記部分可以重複。宣告的 `STRING(50)` 容量並非序列格式的長度。

請勿依賴 `Q_H_TRANSACTION_ID` 作為唯一索引鍵。使用 `Q_H_CHANGE_SEQ` 進行工作層級的變更排序，而非僅比較時間戳記。

## 來源特定標頭

下列來源限制適用於具名端點。這並不代表支援其他 SQL Server 變體或其他檔案來源。

特定來源標頭與處理階段值

| 標頭與資料類型 | 來源端點 | 變更處理期間的值 | 完整載入期間的值 |
| --- | --- | --- | --- |
| `Q_H_USER`<br><br>`STRING(50)` | Microsoft SQL Server；Microsoft Azure SQL Managed Instance；Amazon RDS for SQL Server；IBM Informix；z/OS 版 IBM DB2；LUW 版 IBM DB2；Oracle；檔案；SAP Sybase ASE。 | 進行來源變更的使用者。 | 為空 |
| `Q_H_JOB_NAME`<br><br>`STRING(50)` | 僅限 IBM DB2 for iSeries。 | 進行來源變更的工作。 | 為空 |
| `Q_H_PROGRAM_NAME`<br><br>`STRING(50)` | 僅限 IBM DB2 for iSeries。 | 進行來源變更的程式。 | 為空 |
| `Q_H_XACT_ID`<br><br>`STRING(50)` | Microsoft SQL Server；Microsoft Azure SQL 受控執行個體；Amazon RDS for SQL Server。 | 交易時間識別碼：伺服器最近一次分散式交易第一筆記錄的 LSN。交易中的所有記錄皆共用此 ID。這與從實體交易記錄檔取得的 `Q_H_TRANSACTION_ID` 不同。 | 為空 |

## 使用操作中繼資料

新增欄位並插入 `Q_H_OPERATION` 以記錄來源作業。在完整載入期間，其值為 `INSERT`。在變更處理期間，更新的值為 `UPDATE`。

操作標頭描述該操作；它不會變更目標刪除處理方式。若要傳回來源作業的自訂旗標，請參閱 [運算式函式](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Expression-functions.htm) 中的 `$OPERATION_INDICATOR`。

## 串流登陸標頭欄位

串流轉換工作使用來源欄位，例如 `hdr__kafka_partition`、`hdr__kinesis_offset` 或 `hdr__file_name`。這些不是 `Q_H_` 標頭的別名。從 資料欄 選取串流登陸標頭。如需特定來源清單，請參閱 [登陸表格](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/lakehouse-datasets-architecture-streaming.htm#Landing)。