Décode une chaîne encodée au format MIME application/x-www-form-urlencoded pour la convertir en une chaîne standard.
Limites
Cette fonction est prise en charge uniquement dans Realtime Compute for Apache Flink utilisant Ververica Runtime (VVR) version 8.0.8 ou ultérieure.
Syntaxe
VARCHAR URL_DECODE(VARCHAR input)
VARCHAR URL_DECODE(VARCHAR input, VARCHAR encoding)
Paramètres
| Paramètre | Type de données | Description |
|---|---|---|
input |
VARCHAR | La chaîne d'entrée encodée au format URL. |
encoding |
VARCHAR | L'encodage de caractères utilisé pour le décodage, tel que GBK ou UTF-8. La valeur par défaut est UTF-8. Ce paramètre est facultatif. |
Si input contient des séquences d'encodage en pourcentage non valides, le décodage échoue et la fonction renvoie NULL. L'encodage spécifié doit correspondre à celui utilisé lors de l'encodage initial de la chaîne ; sinon, la sortie peut être illisible ou l'analyse peut échouer.
Exemples
Exemple 1 : Décodage UTF-8 par défaut
Données d'entrée (T1)
| id | input (VARCHAR) |
|---|---|
| 1 | http://calcite.apache.org |
| 2 | https%3A%2F%2Fcalcite.apache.org |
| 3 | http%3A%2F%2Ftest%3Fa%3Db%26c%3Dd |
| 4 | http%3A%2F%2F%E4%BD%A0%E5%A5%BD |
| 5 | test |
| 6 | https%%3A%2F%2Fcalcite.apache.org |
Instruction de test
SELECT
id,
URL_DECODE(input) AS `value`
FROM
T1;
Résultat
| id (INT) | value (VARCHAR) |
|---|---|
| 1 | http://calcite.apache.org |
| 2 | https://calcite.apache.org |
| 3 | http://test?a=b&c=d |
| 4 | http://Hello |
| 5 | test |
| 6 | NULL |
La ligne 1 renvoie l'entrée telle quelle car elle n'est pas encodée au format URL. La ligne 6 renvoie NULL car %% constitue une séquence d'encodage en pourcentage non valide.
Exemple 2 : Décodage avec un encodage de caractères spécifique
Données d'entrée (T2)
| id (INT) | input (VARCHAR) | encoding (VARCHAR) |
|---|---|---|
| 1 | https%3A%2F%2Fcalcite.apache.org% |
UTF-8 |
| 2 | https%3A%2F%2Fcalcite.apache.org |
gb2312 |
Instruction de test
SELECT
id,
URL_DECODE(input, encoding) AS `value`
FROM
T2;
Résultat
| id (INT) | value (VARCHAR) |
|---|---|
| 1 | NULL |
| 2 | http://Hello |
La ligne 1 renvoie NULL car le caractère % final forme une séquence d'encodage en pourcentage incomplète.