

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の 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>

 *expression*   
`CHAR` 文字列、`VARCHAR` 文字列、`VARBYTE` 式、あるいは `CHAR`、`VARCHAR`、または `VARBYTE` 型に暗黙的に評価される式。

## 戻り型
<a name="r_OCTET_LENGTH-return-type"></a>

 INTEGER   
OCTET\$1LENGTH 関数は、入力文字列のバイト数を示す整数を返します。  
入力が文字列の場合、[LEN](r_LEN.md)関数は、マルチバイト文字列のバイト数ではなく、この文字列の実際の文字数を返します。例えば、4 バイトの中国語文字を 3 つ保存するためには、`VARCHAR(12)` 列が必要です。OCTET\$1LENGTH 関数はその文字の `12` を返し、LEN 関数は同じ文字列に対して `3` を返します。

## 使用に関する注意事項
<a name="r_OCTET_LENGTH_usage_notes"></a>

*式*が `CHAR` 文字列である場合、この関数は `CHAR` 文字列の長さを返します。例えば、`CHAR(6)` 入力の出力は `CHAR(6)` です。

*式*が `VARCHAR` 文字列である場合、末尾のスペースはカウントされます。

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

末尾にスペースが 3 つある文字列 `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 |
+--------------+
```