FirebirdSQL logo

OCTET_LENGTH()

Disponible en

DSQL, PSQL

Syntaxe
OCTET_LENGTH (string)
Table 1. paramètres de fonction OCTET_LENGTH
Paramètre Description

string

Une expression de type chaîne de caractères.

Le type de résultat renvoyé :

BIGINT

La fonction OCTET_LENGTH renvoie le nombre d’octets occupés par la chaîne de caractères.

Lorsqu’il s’agit de paramètres de type CHAR, la fonction renvoie la longueur totale de la chaîne formelle. Pour connaître la longueur logique de la chaîne en octets, RIGHT TRIM doit être appliqué avant de passer l’argument à la fonction.

Note

Notez que tous les jeux de caractères n’ont pas le même nombre d’octets que le nombre de caractères.

Exemple OCTET_LENGTH

Example 1. Utilisation de la fonction OCTET_LENGTH
SELECT OCTET_LENGTH('Hello!')
FROM rdb$database
-- retournera 6

SELECT OCTET_LENGTH(_iso8859_1 'Grüß di!')
FROM rdb$database
-- retournera 8 : ü et ß n'occupent pas plus d'un octet en ISO8859_1

SELECT
  OCTET_LENGTH(CAST(_iso8859_1 'Grüß di!' AS VARCHAR(24) CHARACTER SET utf8))
FROM rdb$database
-- retournera 10 : ü et ß occupent 2 octets en UTF8

SELECT
  OCTET_LENGTH(CAST(_iso8859_1 'Grüß di!' AS CHAR(24) CHARACTER SET utf8))
FROM rdb$database
-- retournera 26 : un total de 24 positions CHAR et deux d'entre elles occupent 2 octets.

OVERLAY()

Disponible en

DSQL, PSQL

Syntaxe
OVERLAY (string PLACING replacement FROM pos [FOR length])
Table 1. paramètres de fonction OVERLAY
Paramètre Description

string

La ligne dans laquelle le remplacement a lieu.

replacement

La ligne à remplacer par.

pos

La position à partir de laquelle le remplacement a lieu.

length

Le nombre de caractères à supprimer de la chaîne originale.

Le type de résultat renvoyé :

VARCHAR ou BLOB

La fonction OVERLAY est utilisée pour remplacer une partie d’une chaîne de caractères par une autre chaîne.

Par défaut, le nombre de caractères à supprimer d’une chaîne est égal à la longueur de la chaîne à remplacer.Un quatrième paramètre facultatif permet à l’utilisateur de définir son propre nombre de caractères à supprimer.

Caractéristiques d’utilisation :

  • La fonction supporte entièrement le test BLOB avec n’importe quel jeu de caractères et n’importe quelle longueur ;

  • Si la chaîne d’entrée est de type BLOB, alors le résultat sera également de type BLOB. Sinon, le type de résultat sera VARCHAR(n), où n est la somme des longueurs des paramètres string et replacement ;

  • Comme dans toutes les fonctions de chaîne SQL, pos est le paramètre déterminant ;

  • Si pos est plus long que la longueur de la chaîne, remplacement est placé immédiatement après la fin de la chaîne ;

  • Si le nombre de caractères entre pos et la fin de la chaîne est inférieur à la longueur de remplacement (ou au paramètre length, s’il est spécifié), la chaîne est tronquée à pos et remplacement est placé après elle ;

  • Si le paramètre length est égal à zéro (FOR 0), replacement est simplement inséré dans la chaîne, en commençant à la position pos ;

  • Si l’un des paramètres a la valeur NULL, le résultat est NULL ;

  • Si les paramètres pos et length ne sont pas des entiers, l’arrondi bancaire (à un nombre pair) est utilisé : 0,5 devient 0, 1,5 devient 2, 2,5 devient 2, 3,5 devient 4, etc.

Warning

Lors de l’utilisation d’une fonction BLOB, il peut être nécessaire de charger l’objet entier en mémoire. Si la BLOB est grande, cela peut affecter les performances.

Exemple OVERLAY

Example 1. Utilisation de la fonction OVERLAY
OVERLAY ('Goodbye' PLACING 'Hello' FROM 2) -- Résultat: 'GHelloe'
OVERLAY ('Goodbye' PLACING 'Hello' FROM 5) -- Résultat: 'GoodHello'
OVERLAY ('Goodbye' PLACING 'Hello' FROM 8) -- Résultat: 'GoodbyeHello'
OVERLAY ('Goodbye' PLACING 'Hello' FROM 20) -- Résultat: 'GoodbyeHello'
OVERLAY ('Goodbye' PLACING 'Hello' FROM 2 FOR 0) -– Résultat: 'GHellooodbye'
OVERLAY ('Goodbye' PLACING 'Hello' FROM 2 FOR 3) -- Résultat: 'GHellobye'
OVERLAY ('Goodbye' PLACING 'Hello' FROM 2 FOR 6) -- Résultat: 'GHello'
OVERLAY ('Goodbye' PLACING 'Hello' FROM 2 FOR 9) -- Résultat: 'Ghello'
OVERLAY ('Goodbye' PLACING '' FROM 4) -- Résultat: 'Goodbye'
OVERLAY ('Goodbye' PLACING '' FROM 4 FOR 3) -- Résultat: 'Gooe'
OVERLAY ('Goodbye' PLACING '' FROM 4 FOR 20) -- Résultat: 'Goo'
OVERLAY ('' PLACING 'Hello' FROM 4) -- Résultat: 'Hello'
OVERLAY ('' PLACING 'Hello' FROM 4 FOR 0) -- Résultat: 'Hello'
OVERLAY ('' PLACING 'Hello' FROM 4 FOR 20) -- Résultat: 'Hello'