

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊，請參閱[部落格文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# OCTET\$1LENGTH 函數
<a name="r_OCTET_LENGTH"></a>

傳回指定字串的長度 (以位元組為單位)。

## 語法
<a name="r_OCTET_LENGTH-synopsis"></a>

```
OCTET_LENGTH(expression)
```

## 引數
<a name="r_OCTET_LENGTH-argument"></a>

 *表達式*   
`CHAR` 字串、`VARCHAR` 字串、`VARBYTE` 運算式或隱含評估為 `CHAR`、`VARCHAR` 或 `VARBYTE` 類型的運算式。

## 傳回類型
<a name="r_OCTET_LENGTH-return-type"></a>

 INTEGER   
OCTET\$1LENGTH 函數傳回整數，表示輸入字串中的位元組數。  
如果輸入字串是字元字串，則 [LEN](r_LEN.md) 函數會傳回多位元組字串中的實際字元數，而不是位元組數。例如，需要 `VARCHAR(12)` 欄來儲存三個四位元組中文字元。OCTET\$1LENGTH 函數將針對該字串傳回 `12`，而 LEN 函數會針對相同的字串傳回 `3`。

## 使用須知
<a name="r_OCTET_LENGTH_usage_notes"></a>

如果 *expression* 是 `CHAR` 字串，該函數傳回 `CHAR` 字串的長度。例如，`CHAR(6)` 輸入的輸出是 `CHAR(6)`。

如果 *expression* 是 `VARCHAR` 字串，則計算結尾空格。

## 範例
<a name="r_OCTET_LENGTH-example"></a>

若要在具有三個結尾空格的字串 `francais` 轉換為 `CHAR` 和 `VARCHAR` 類型時傳回位元組數，請使用下列範例。如需更多資訊，請參閱[CAST 函數](r_CAST_function.md)。

```
SELECT OCTET_LENGTH(CAST('francais   ' AS CHAR(15))) AS octet_length_char, OCTET_LENGTH(CAST('francais   ' AS VARCHAR(15))) AS octet_length_varchar;

+-------------------+----------------------+
| octet_length_char | octet_length_varchar |
+-------------------+----------------------+
|                15 |                   11 |
+-------------------+----------------------+
```

若要傳回字串 `français` 中的位元組數和字元數，請使用下列範例。

```
SELECT OCTET_LENGTH('français'), LEN('français');

+--------------+-----+
| octet_length | len |
+--------------+-----+
|            9 |   8 |
+--------------+-----+
```

若要在字串 `français` 轉換為 `VARBYTE` 時傳回位元組數，請使用下列範例。

```
SELECT OCTET_LENGTH(CAST('français' AS VARBYTE));

+--------------+
| octet_length |
+--------------+
|            9 |
+--------------+
```