Fonctions
de chaînes : Traitements |
 |
à
partir de
|
 |
remplaçable
par LEFT |
F_LEFT
(F_LEFT4, F_LEFT8)
F_BIGLEFT |
Compatible
avec FreeUDFLib,
FreeUDFLibC, FreeUDFLib AvERP, GrUDF |
Entrypoint
|
left |
pas
compatible UTF-8 – emploie U_LEFT (U_LEFT4, U_LEFT8) |
U_LEFT
(U_LEFT4, U_LEFT8)
|
Fonction
de adhoc
|
Entrypoint
|
u_left |
Compatibles UTF-8 |
Entrée |
CSTRING(254)
INTEGER |
Chaîne
Longueur de la chaîne demandée |
Sortie |
CSTRING(254) |
Fournit une
partie de la chaîne d’entrée depuis son premier caractère et d’une
longueur donnée par le paramètre 2 |
Le
comptage commence à 1.
TestSQL
SELECT 'Dies i' AS ISCORRECT, F_LEFT('Dies ist ein Test', 6) FROM
RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_LEFT(NULL, NULL) FROM RDB$DATABASE; |
  |
à
partir de |
 |
remplaçable
par SUBSTRING |
F_MID
(F_MID4, F_MID8)
F_BIGMID |
Compatible
avec
FreeUDFLib,
FreeUDFLibC, FreeUDFLib AvERP
|
Entrypoint |
mid |
pas
compatible UTF-8 – emploie U_MID (U_MID4, U_MID8) |
U_MID
(U_MID4, U_MID8)
|
Fonction
de adhoc
|
Entrypoint |
u_mid |
Compatibles UTF-8 |
F_COPY
|
Compatible
avec GrUDF
|
Entrypoint |
mid1 |
pas
compatible UTF-8 – emploie U_MID |
F_STRCOPY |
Entrée/Sortie
compatibles avec
rFunc (SUBSTR, LONGSUBSTR) |
Entrypoint |
strcopy |
pas
compatible UTF-8 – emploie U_MID |
Entrée |
CSTRING(254)
INTEGER
INTEGER |
Chaîne hors de
laquelle on désire une chaîne partielle
Position du début de la chaîne partielle dans la chaîne donnée
Longueur de la chaîne partielle |
Sortie |
CSTRING(254) |
Fournit une
chaîne partielle de la
chaîne donnée, de longueur indiquée par le paramètre 3, et à partir de
la position donnée par le paramètre 2. |
Le
premier caractère de la chaîne donnée pour F_MID et F_STRCOPY est la
position 0,
pour F_COPY est la position 1
TestSQL
SELECT 'tag' AS ISCORRECT, F_MID('Geburtstagsparty', 7, 3)
FROM RDB$DATABASE;
SELECT 'tag' AS ISCORRECT, F_COPY('Geburtstagsparty', 8, 3)
FROM RDB$DATABASE;
SELECT 'tag' AS ISCORRECT, F_STRCOPY('Geburtstagsparty', 7,
3) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_MID(NULL, NULL, NULL) FROM RDB$DATABASE; |
  |
à
partir de
|
 |
remplaçable
par RIGHT |
F_RIGHT
(F_RIGHT4, F_RIGHT8)
F_BIGRIGHT |
Compatible
avec FreeUDFLib,
FreeUDFLibC, FreeUDFLib AvERP, GrUDF |
Entrypoint |
right |
pas
compatible UTF-8 – emploie U_RIGHT |
U_RIGHT
(U_RIGHT4, U_RIGHT8)
|
Fonction
de adhoc |
Entrypoint |
u_right |
Compatibles UTF-8 |
Entrée |
CSTRING(254)
INTEGER |
Chaîne
Nombre de caractères à droite |
Sortie |
CSTRING(254) |
Ne conserve à
la fin de la chaîne que le nombre de caractères spécifié au paramètre 2 |
Le
comptage commence à 1
TestSQL
SELECT 'n Test' AS ISCORRECT, F_RIGHT('Dies ist ein Test', 6) FROM
RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_RIGHT(NULL, NULL) FROM RDB$DATABASE; |
  |
à
partir de
|
 |
remplaçable
par POSITION |
F_SUBSTR
(F_SUBSTR4, F_SUBSTR8)
F_BIGSUBSTR
|
Compatible
avec FreeUDFLibC
|
Entrypoint |
substr |
pas
compatible UTF-8 – emploie U_SUBSTR |
Entrée |
CSTRING(8190)
CSTRING(1024) |
Chaîne 1 (dans
laquelle la position de la chaîne 2 va être recherchée)
Chaîne 2 (dont on recherche la position dans la chaîne 1) |
Sortie |
INTEGER |
Fournit la
position de la première occurrence de la chaîne 2 dans la chaîne 1 |
F_SUBSTR
(F_STRSUB) |
Compatible
avec FreeUDFLib,
FreeUDFLib AvERP, GrUDF |
Entrypoint |
strsub |
pas
compatible UTF-8 – emploie U_SUBSTR |
F_STRPOS |
Entrée/Sortie
compatibles avec rFunc (STRPOS) |
Entrypoint |
strpos |
pas
compatible UTF-8 – emploie U_SUBSTR |
Entrée |
CSTRING(1024)
CSTRING(8190) |
Chaîne 1 (dont
on recherche la position dans la chaîne 2)
Chaîne 2 (dans laquelle la position de la chaîne 1 va être recherchée) |
Sortie |
INTEGER |
Fournit la
position de la première occurrence de la chaîne 1 dans la chaîne 2 |
F_SUBSTR,
F_STRSUB etc.: Le
comptage commence à 0, si
pas trouvé -1.
F_STRPOS: Le
comptage commence à 1, si pas trouvé 0.
Remarque:
Dans la version originale de “FreeUDFLib” (1998 de Gregory Deatz) la
séquence des paramètres d'entrée n'est pas la même que dans les autres
fonctions String ainsi que dans la version portable C
“FreeUDFLibC” (1999 by Gregory Deatz). Afin de maintenir la
compatibilité avec ces deux variantes, deux “Entrypoints” différents
figurent dans le script DECLARE de la fonction F_SUBSTR.
- Pour la compatibilité avec “FreeUDFLib” de Delphi, avec
“FreeUDFLib AvERP” et avec “GrUDF” (qui est de son côté compatible avec
“FreeUDFLib” de Delphi) on utilise le Entrypoint “strsub”
- que pour la compatibilité avec “FreeUDFLibC”, c'est le
Entrypoint “substr”.
TestSQL (Version FreeUDFLibC avec Entrypoint substr)
SELECT 9 AS ISCORRECT, F_SUBSTR('Pauline fährt in Urlaub', 'ähr') FROM
RDB$DATABASE;
SELECT -1 AS ISCORRECT, F_SUBSTR('Pauline fährt in Urlaub', 'chr') FROM
RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_SUBSTR(NULL, NULL) FROM RDB$DATABASE;
TestSQL (Version FreeUDFLib, GrUDF avec Entrypoint strsub)
SELECT 9 AS ISCORRECT, F_SUBSTR('ähr', 'Pauline fährt in Urlaub') FROM
RDB$DATABASE; |
  |
à
partir de
|
 |
remplaçable
par POSITION |
F_SUBSTRN
(F_SUBSTR)  |
Fonction
de adhoc |
Entrypoint |
substrn |
pas
compatible UTF-8 – emploie U_SUBSTR |
U_SUBSTR |
Fonction
de adhoc |
Entrypoint |
u_substr |
Compatibles UTF-8 |
Entrée |
CSTRING(8190)
CSTRING(1024) |
Chaîne 1 (dans
laquelle la position de la chaîne 2 va être recherchée)
Chaîne 2 (dont on recherche la position dans la chaîne 1) |
Sortie |
INTEGER |
Fournit la
position de la première occurrence de la chaîne 2 dans la chaîne 1 |
F_STRSUBN
(F_SUBSTR)  |
Fonction
de adhoc |
Entrypoint |
strsubn |
pas
compatible UTF-8 – emploie U_SUBSTR |
Entrée |
CSTRING(1024)
CSTRING(8190) |
Chaîne 1 (dont
on recherche la position dans la chaîne 2)
Chaîne 2 (dans laquelle la position de la chaîne 1 va être recherchée) |
Sortie |
INTEGER |
Fournit la
position de la première occurrence de la chaîne 1 dans la chaîne 2 |
Les
variantes ci-dessus (F_SUBSTR et F_STRSUB) fournissent –1 si le
recherche échoue.
Pour
obtenir maintenent le comportement correct <null> comme
dans
l'ancienne variante, on utilise respectivement les points d'entrée
(Entrypoint) "strsubnull" et "substrnull".
TestSQL (Version FreeUDFLibC avec Entrypoint substrnull)
SELECT NULL AS ISCORRECT, F_SUBSTR('Pauline fährt in Urlaub', 'chr')
FROM
RDB$DATABASE; |
  |
F_STRRM
|
Compatible
avec |
Entrypoint |
strrm |
pas
compatible UTF-8 – emploie U_STRRM |
U_STRRM
|
Fonction
de adhoc |
Entrypoint |
u_strrm |
Compatibles UTF-8 |
Entrée |
CSTRING(8190)
INTEGER |
Chaîne de
laquelle une position sera supprimée
Position dans la chaîne qui va être supprimée |
Sortie |
CSTRING(8190) |
Supprime le
caractère de la chaîne à la position spécifiée |
Le
comptage commence à 0
TestSQL
SELECT 'ies ist ein Test' AS ISCORRECT, F_STRRM('Dies ist ein Test', 0)
FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_STRRM(NULL, NULL) FROM RDB$DATABASE; |
  |
F_LTRIM
(F_LTRIM4, F_LTRIM8)
F_BIGLTRIM |
Compatible
avec FreeUDFLib,
FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Entrée/Sortie
compatibles avec
rFunc (LTRIM, LONGLTRIM) |
Entrypoint |
ltrim |
Compatibles UTF-8 |
Entrée |
CSTRING(8190) |
Chaîne dont on
désire supprimer les espaces en tête |
Sortie |
CSTRING(8190) |
Enlève tous les
espaces en tête de la chaîne donnée |
Tout
en conservant les espaces protégés (créés avec <ALT>
<255>)
TestSQL
SELECT 'Dies ist ein Test' AS ISCORRECT, F_LTRIM('
Dies ist ein Test') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_LTRIM(NULL) FROM RDB$DATABASE; |
  |
à
partir de |
 |
remplaçable
par TRIM |
F_RTRIM
(F_RTRIM4, F_RTRIM8)
F_BIGRTRIM |
Compatible
avec FreeUDFLib,
FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Entrée/Sortie
compatibles avec
rFunc (RTRIM, LONGRTRIM) |
Entrypoint |
rtrim |
Compatibles UTF-8 |
Entrée |
CSTRING(8190) |
Chaîne à
laquelle on enlève les espaces de la fin |
Sortie |
CSTRING(8190) |
Enlève tous les
espace à la fin de la chaîne |
Tout
en conservant les espaces protégés (créés avec <ALT>
<255>)
TestSQL
SELECT 'Dies ist ein Test' AS ISCORRECT, F_STRINGLENGTH(F_RTRIM('Dies
ist ein Test ')) AS ANZ_ZEICHEN, F_RTRIM('Dies ist
ein
Test ') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_STRINGLENGTH(F_RTRIM(NULL)) AS ANZ_ZEICHEN,
F_RTRIM(NULL) FROM RDB$DATABASE; |
  |
F_LRTRIM
(F_LRTRIM4, F_LRTRIM8)
F_BIGLRTRIM |
Compatible
avec FreeUDFLib,
FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Entrée/Sortie
compatibles avec
rFunc (TRIM, LONGTRIM) |
Entrypoint |
lrtrim |
Compatibles UTF-8 |
Entrée |
CSTRING(8190) |
Chaîne dont on
désire supprimer les espaces en tête et en queue |
Sortie |
CSTRING(8190) |
Enlève tous les
espaces en tête et en queue de la chaîne donnée |
Tout
en conservant les espaces protégés (créés avec <ALT>
<255>)
TestSQL
SELECT 'Dies ist ein Test' AS ISCORRECT,
F_STRINGLENGTH(F_LRTRIM(' Dies ist ein
Test ')) AS
ANZ_ZEICHEN, F_LRTRIM(' Dies ist ein Test
') FROM
RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_STRINGLENGTH(F_LRTRIM(NULL)) AS
ANZ_ZEICHEN, F_LRTRIM(NULL) FROM RDB$DATABASE; |
  |
à
partir de
|
 |
remplaçable
par LPAD |
F_PADLEFT |
Compatible
avec FreeUDFLib,
FreeUDFLibC, FreeUDFLib AvERP, GrUDF |
Entrypoint |
padleft |
pas
compatible UTF-8 – emploie U_PADLEFT |
U_PADLEFT |
Fonction
de adhoc |
Entrypoint |
u_padleft |
Compatibles UTF-8 |
Entrée |
CSTRING(4095)
CSTRING(16)
INTEGER |
Chaîne 1
Chaîne 2 (qui sert à remplir la chaîne 1)
Longueur à atteindre par le remplisage |
Sortie |
CSTRING(4095) |
Remplit la
chaîne 1 à gauche avec
les caractères de la chaîne 2 jusqu’à ce que la longueur spécifiée par
le paramètre 3 soit atteinte |
F_RPADLEFT |
Entrée/Sortie
compatibles avec rFunc (PADLEFT, LONGPADLEFT) |
Entrypoint |
r_padleft |
pas
compatible UTF-8 – emploie U_PADLEFT |
Entrée |
CSTRING(4095)
INTEGER
CSTRING(16)
|
Chaîne 1
Longueur à atteindre par le remplisage
Chaîne 2 (qui sert à remplir la chaîne 1)
|
Sortie |
CSTRING(4095) |
Remplit la
chaîne 1 à gauche avec
les caractères de la chaîne 2 jusqu’à ce que la longueur spécifiée par
le paramètre 2 soit atteinte |
Si
la chaîne 2 comprend plus de 1 caractère, le remplissage débute avec
les caractères de droite de la chaîne 2 et s’arrête lorsque la longueur
totale spécifiée est atteinte (voir second test ci-dessous).
TestSQL
SELECT 'XXXDies ist ein Test' AS ISCORRECT, F_PADLEFT('Dies ist ein
Test', 'X', 20) FROM RDB$DATABASE;
SELECT 'xXxDies ist ein Test' AS ISCORRECT, F_PADLEFT('Dies ist ein
Test', 'Xx', 20) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_PADLEFT(NULL, NULL, NULL) FROM RDB$DATABASE; |
  |
à
partir de
|
 |
remplaçable
par RPAD |
F_PADRIGHT |
Compatible
avec FreeUDFLib,
FreeUDFLibC, FreeUDFLib AvERP, GrUDF |
Entrypoint |
padright |
pas
compatible UTF-8 – emploie U_PADRIGHT |
U_PADRIGHT |
Fonction
de adhoc |
Entrypoint |
u_padright |
Compatibles UTF-8 |
Entrée |
CSTRING(4095)
CSTRING(16)
INTEGER |
Chaîne 1
Chaîne 2 (avec laquelle on complète la chaîne 1)
Longueur de chaîne à atteindre par le remplissage |
Sortie |
CSTRING(4095) |
Complète la
chaîne 1 à droite avec
le caractère ou les caractères de la chaîne 2 pour atteindre la
longueur totale spécifiée par le paramètre 3 |
F_RPADRIGHT |
Entrée/Sortie
compatibles avec rFunc (PADRIGHT, LONGPADRIGHT) |
Entrypoint |
r_padright |
pas
compatible UTF-8 – emploie U_PADRIGHT |
Entrée |
CSTRING(4095)
INTEGER
CSTRING(16)
|
Chaîne 1
Longueur de chaîne à atteindre par le remplissage
Chaîne 2 (avec laquelle on complète la chaîne 1)
|
Sortie |
CSTRING(4095) |
Complète la
chaîne 1 à droite avec
le caractère ou les caractères de la chaîne 2 pour atteindre la
longueur totale spécifiée par le paramètre 2 |
Si
la chaîne 2 comprend plus de 1 caractère, le remplissage débute avec
les caractères de gauche de la chaîne 2 et s’arrête lorsque la longueur
totale spécifiée est atteinte (voir second test ci-dessous).
TestSQL
SELECT 'Dies ist ein TestXXX' AS ISCORRECT, F_PADRIGHT('Dies ist ein
Test', 'X', 20) FROM RDB$DATABASE;
SELECT 'Dies ist ein TestXxX' AS ISCORRECT, F_PADRIGHT('Dies ist ein
Test', 'Xx', 20) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_PADRIGHT(NULL, NULL, NULL) FROM
RDB$DATABASE; |
  |
F_PADCENTER |
Fonction
de adhoc
|
Entrypoint |
padcenter |
pas
compatible UTF-8 – emploie U_PADCENTER |
U_PADCENTER |
Fonction
de adhoc
|
Entrypoint |
u_padcenter |
Compatibles UTF-8 |
Entrée |
CSTRING(4095)
CSTRING(16)
INTEGER |
Chaîne 1
Chaîne 2 (sert à compléter la chaîne 1 à gauche et à droite)
Longueur à atteindre lors du remplissage |
Sortie |
CSTRING(4095) |
La chaîne 2
sert à compléter la
chaîne 1 de telle sorte que la première moitié qui s’insère à gauche
ait la même longueur que la partie de droite tout en atteignant la
longueur totale donnée au paramètre 3 |
En
cas d’un nombre impair, le remplissage sera plus long d’un caractère à
gauche.
TestSQL
SELECT 'XXDies ist ein TestXX' AS ISCORRECT, F_PADCENTER('Dies ist ein
Test', 'X', 21) FROM RDB$DATABASE;
SELECT 'XXDies ist ein TestX' AS ISCORRECT, F_PADCENTER('Dies ist ein
Test', 'X', 20) FROM RDB$DATABASE;
SELECT 'XxDies ist ein TestXx' AS ISCORRECT, F_PADCENTER('Dies ist ein
Test', 'Xx', 21) FROM RDB$DATABASE;
SELECT 'XxDies ist ein TestX' AS ISCORRECT, F_PADCENTER('Dies ist ein
Test', 'Xx', 20) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_PADCENTER(NULL, NULL, NULL) FROM
RDB$DATABASE; |
  |
F_LINEWRAP
|
Compatible
avec FreeUDFLib,
FreeUDFLibC, FreeUDFLib AvERP, GrUDF |
Entrypoint |
linewrap |
pas
compatible UTF-8 – emploie U_LINEWRAP |
U_LINEWRAP
|
Fonction
de adhoc
|
Entrypoint |
u_linewrap |
Compatibles UTF-8 |
Entrée |
CSTRING(32760)
INTEGER
INTEGER |
Chaîne
Position de départ
Justification |
Sortie |
CSTRING(32760) |
Founit tous les
mots de la chaîne à partir de la position de départ, qui ne dépassent
pas la justification.
|
Le
comptage commence à 0
TestSQL
SELECT 'alle avec einer Geburtstagsparty' AS ISCORRECT,
F_LINEWRAP('Wir gehen alle avec einer Geburtstagsparty', 10, 30) FROM
RDB$DATABASE;
SELECT 'alle avec einer' AS ISCORRECT, F_LINEWRAP('Wir gehen
alle avec einer Geburtstagsparty', 10, 29) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_LINEWRAP(NULL, NULL, NULL) FROM
RDB$DATABASE; |
  |
à
partir de |
 |
remplaçable
par REPLACE |
F_REPLACE
(F_REPLACE4, ...8)
F_BIGREPLACE |
Compatible
avec FreeUDFLibC
Entrée/Sortie
compatibles avec
rFunc (STRREPLACE, LONGSTRREPLACE) |
Entrypoint |
replace |
Compatibles UTF-8 |
Entrée |
CSTRING(32760)
CSTRING(254)
CSTRING(254) |
Chaîne dans
laquelle le remplacement va s’opérer
Chaîne partielle à remplacer
Chaîne servant à remplacer la chaîne du paramètre 2 |
Sortie |
CSTRING(32760) |
Remplace dans
une chaîne toutes les
chaînes partielles identiques à celle spécifiée au paramètre 2 par la
chaîne spécifiée au paramètre 3 |
Simplification
de la fonction F_REPLACESTRING sans la possibilité de faire un seul
remplacement et qui respecte les majuscules et minuscules spécifiées au
paramètre 2.
TestSQL
SELECT 'Dies ist ein Versuch zwei Versuch drei Versuch vier TEST' AS
ISCORRECT, F_REPLACE('Dies ist ein Test zwei Test drei Test vier TEST',
'Test', 'Versuch') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_REPLACE(NULL, NULL, NULL) FROM RDB$DATABASE; |
  |
F_REPLACESTRING
(..4, ..8)
F_BIGREPLACESTRING |
Compatible
avec FreeUDFLib AvERP, GrUDF |
Entrypoint |
replacestring |
pas
compatible UTF-8 – emploie U_REPLACESTRING |
U_REPLACESTRING
(..4, ..8)
|
Fonction
de adhoc
|
Entrypoint |
u_replacestring |
Compatibles UTF-8 |
Entrée |
CSTRING(32760)
CSTRING(254)
CSTRING(254)
INTEGER
INTEGER |
Chaîne dans
laquelle le remplacement va s’opérer
Chaîne partielle à remplacer
Chaîne servant à remplacer la chaîne du paramètre 2
0 = seulement le premier remplacement, 1 = tous les remplacements
possibles
0 = respecter la casse des caractères du paramètre 2, 1 = ne pas
respecter |
Sortie |
CSTRING(32760) |
Remplace dans
une chaîne une ou
toutes les chaînes partielles identiques à celle spécifiée au paramètre
2 par la chaîne spécifiée au paramètre 3. Peut tenir compte ou pas de
la casse des caractères du paramètre 2. |
TestSQL
SELECT 'Dies ist ein Versuch zwei Test drei Test vier TEST' AS
ISCORRECT, F_REPLACESTRING('Dies ist ein Test zwei Test drei Test vier
TEST', 'Test', 'Versuch', 0, 0) FROM RDB$DATABASE;
SELECT 'Dies ist ein Versuch zwei Test drei Test vier TEST' AS
ISCORRECT, F_REPLACESTRING('Dies ist ein Test zwei Test drei Test vier
TEST', 'Test', 'Versuch', 0, 1) FROM RDB$DATABASE;
SELECT 'Dies ist ein Versuch zwei Versuch drei Versuch vier TEST' AS
ISCORRECT, F_REPLACESTRING('Dies ist ein Test zwei Test drei Test vier
TEST', 'Test', 'Versuch', 1, 0) FROM RDB$DATABASE;
SELECT 'Dies ist ein Versuch zwei Versuch drei Versuch vier Versuch' AS
ISCORRECT, F_REPLACESTRING('Dies ist ein Test zwei Test drei Test vier
TEST', 'Test', 'Versuch', 1, 1) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_REPLACESTRING(NULL, NULL, NULL, NULL, NULL)
FROM RDB$DATABASE; |
  |
F_CONVERTSYMBOLS |
Entrée/Sortie compatibles avec
rFunc (CONVERTSYMBOLS, LONGCONVERTSYMBOLS) |
Entrypoint |
convertsymbols |
pas
compatible UTF-8 – emploie U_CONVERTSYMBOLS |
U_CONVERTSYMBOLS |
Fonction
de adhoc
|
Entrypoint |
u_convertsymbols |
Compatibles UTF-8 |
Entrée |
CSTRING(32760)
CSTRING(254)
CSTRING(254) |
Chaîne contenant les
caractères à convertir
Chaîne
2 reprenant les caractères à soumettre à la conversion
Chaîne
3 reprenant les caractères convertis correspondant à la même position
de la chaîne 2 |
Sortie |
CSTRING(32760) |
Chaîne telle qu’elle
résulte de la conversion
définie par les chaînes 2 et 3 |
TestSQL
SELECT
'(a+ab)-abc*a+b=c' AS ISCORRECT, F_CONVERTSYMBOLS('(1+12)-123*1+2=3',
'123', 'abc') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_CONVERTSYMBOLS(NULL, NULL, NULL)
FROM RDB$DATABASE; |
  |
à
partir de
|
 |
remplaçable
par REVERSE |
F_REVERSE |
Fonction
de adhoc
|
Entrypoint |
reverse |
pas
compatible UTF-8 – emploie U_REVERSE |
U_REVERSE |
Fonction
de adhoc
|
Entrypoint |
u_reverse |
Compatibles UTF-8 |
Entrée |
CSTRING(254) |
Chaîne dont on veut inverser l’ordre des caractères |
Sortie |
CSTRING(254) |
Fournit une chaîne dont l’ordre des caractères est
inversé |
Majuscules/minuscules y restent
les mêmes.
TestSQL
SELECT 'ynamreG' AS ISCORRECT, F_REVERSE('Germany') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_REVERSE(NULL) FROM RDB$DATABASE; |
  |
F_STRIPSTRING
F_BIGSTRIPSTRING
|
Compatible
avec FreeUDFLib,
FreeUDFLibC, FreeUDFLib AvERP, GrUDF |
Entrypoint |
stripstring |
pas
compatible UTF-8 – emploie U_STRIPSTRING |
F_STRIPSTRING
|
Fonction
de adhoc
|
Entrypoint |
u_stripstring |
Compatibles UTF-8 |
Entrée |
CSTRING(32760)
CSTRING(254) |
Chaîne 1 (de
laquelle tous les caractères de la chaîne 2 sont à enlever)
Chaîne 2 (Caractères qui sont à enlever) |
Sortie |
CSTRING(32760) |
Enlève de la
chaîne 1 tous les caractères contenus dans la chaîne 2, quel que soit
leur ordre dans cette chaîne 2 |
Pendant
de F_HOLDSTRING et F_STRIPSTRINGHOLD
TestSQL
SELECT 'Ds s n Ts Tx' AS ISCORRECT, F_STRIPSTRING('Dies ist ein Test
Text', 'iet') FROM RDB$DATABASE;
SELECT 'Ds s n Ts Tx' AS ISCORRECT, F_STRIPSTRING('Dies ist ein Test
Text', 'tei') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_STRIPSTRING(NULL, NULL) FROM RDB$DATABASE; |
  |
F_STRIPSTRINGHOLD
F_HOLDSTRING
F_BIGSTRIPSTRINGHOLD |
Compatible
avec FreeUDFLib,
FreeUDFLib AvERP, GrUDF
Compatible
avec FreeUDFLibC
|
Entrypoint |
stripstringhold |
pas
compatible UTF-8 – emploie U_STRIPSTRINGHOLD |
U_STRIPSTRINGHOLD |
Fonction
de adhoc
|
Entrypoint |
u_stripstringhold |
Compatibles UTF-8 |
Entrée |
CSTRING(32760)
CSTRING(254) |
Chaîne 1 (de
laquelle tous les caractères de la chaîne 2 sont à enlever)
Chaîne 2 (Caractères qui sont à enlever) |
Sortie |
CSTRING(32760) |
Enlève de la
chaîne 1 tous les caractères qui ne sont pas compris dans la chaîne 2,
quel que soit leur ordre dans cette chaîne 2 |
Dit
autrement: Renvoie seulement les caractères de la chaîne 1 dans leur
ordre et qui sont compris dans la chaîne 2.
Pendant de F_STRIPSTRING
Une requête SQL ne peut comprendre à la fois F_HOLDSTRING et
F_STRIPSTRINGHOLD
TestSQL
SELECT 'ieiteietet' AS ISCORRECT, F_HOLDSTRING('Dies ist ein Test
Text', 'iet') FROM RDB$DATABASE;
SELECT 'ieiteietet' AS ISCORRECT, F_HOLDSTRING('Dies ist ein Test
Text', 'tei') FROM RDB$DATABASE;
SELECT 'ieiteietet' AS ISCORRECT, F_HOLDSTRING('Dies ist ein Test
Text', 'iet') FROM RDB$DATABASE;
SELECT 'ieiteietet' AS ISCORRECT, F_HOLDSTRING('Dies ist ein Test
Text', 'tei') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_STRIPSTRINGHOLD(NULL, NULL) FROM
RDB$DATABASE; |
  |
F_REPEATTRIM |
Entrée/Sortie
compatibles avec rFunc (REPEATTRIM, LONGREPEATTRIM) |
Entrypoint |
repeattrim |
pas
compatible UTF-8 – emploie U_REPEATTRIM |
U_REPEATTRIM |
Fonction
de adhoc
|
Entrypoint |
u_repeattrim |
Compatibles UTF-8 |
Entrée |
CSTRING(8190)
CSTRING(1) |
Chaîne
1 de laquelle on doit éliminer des caractères
Chaîne
2: caractère répétitif à éliminer |
Sortie |
CSTRING(8190) |
Chaîne
résultant de la suppression de toutes les répétitions consécutives de
chaîne 2 dans
la chaîne 1 |
TestSQL
SELECT '123' AS ISCORRECT, F_REPEATTRIM('12223', '2') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_REPEATTRIM(NULL, NULL) FROM RDB$DATABASE;
|
  |
F_STRREPEAT |
Entrée/Sortie
compatibles avec rFunc (STRREPEAT, LONGSTRREPEAT) |
Entrypoint |
strrepeat |
Compatibles UTF-8 |
Entrée |
CSTRING(254)
SMALLINT |
Chaîne
1 à répéter
Nombre
de répétitions de la chaîne 1 |
Sortie |
CSTRING(8190) |
Chaîne
résultant de la répétition de la chaîne 1 un nombre de fois donné par
le nombre
du second paramètre |
Il faut cependant prendre garde à ce que la
chaîne de sortie ne dépasse pas la longueur définie!
TestSQL
SELECT 'TestTestTest' AS ISCORRECT, F_STRREPEAT('Test', 3) FROM
RDB$DATABASE;
SELECT '' AS ISCORRECT, F_STRREPEAT('Test', 0)
FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_STRREPEAT(NULL,
NULL) FROM
RDB$DATABASE; |
  |
F_STROFCHAR |
Compatible
avec GrUDF |
Entrypoint |
strofchar |
pas
compatible UTF-8 – emploie U_STRREPEAT |
Entrée |
CSTRING(1)
INTEGER |
Chaîne qui doit
être répétée
Nombre des répétitions |
Sortie |
CSTRING(32760) |
Fournit une
chaîne répétant le caractère spécifié en paramètre 1 et de la longueur
spécifiée en paramètre 2 |
TestSQL
SELECT F_STRINGLENGTH(F_STROFCHAR('A', 10)) || ' vois A' AS
ISCORRECT,
F_STROFCHAR('A', 10) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_STROFCHAR(NULL, NULL) FROM RDB$DATABASE; |
  |
à
partir de
|
 |
remplaçable
par OVERLAY |
F_STRSTUFF |
Entrée/Sortie
compatibles avec rFunc (STRSTUFF, LONGSTRSTUFF) |
Entrypoint |
strstuff |
pas
compatible UTF-8 – emploie U_STRSTUFF |
U_STRSTUFF |
Fonction
de adhoc
|
Entrypoint |
u_strstuff |
Compatibles UTF-8 |
Entrée |
CSTRING(8190)
SMALLINT
SMALLINT
CSTRING(254) |
Chaîne
1 dans laquelle des caractères doivent être changés
Position
du début de la chaîne partielle dans la chaîne donnée
Longueur de la chaîne partielle
Caractères de remplacement |
Sortie |
CSTRING(81900) |
Chaîne
résultante après le remplacement de la chaîne 4 dans la chaîne 1 à
partir le la
position donnée par le paramètre 2 et pour une longueur donnée par le
paramètre
3 |
Le
comptage commence à 1.
Le
nombre de caractères supprimés et le nombre de caractères de
remplacement ne
doivent pas être identiques.
TestSQL
SELECT '12abcd567890' AS ISCORRECT,
F_STRSTUFF('1234567890', 3, 2, 'abcd') FROM RDB$DATABASE;
SELECT
NULL AS ISCORRECT, F_STRSTUFF(NULL, NULL, NULL, NULL) FROM
RDB$DATABASE; |
  |
F_COLLATEBR |
Compatible
avec GrUDF |
Entrypoint |
collatebr |
pas compatible UTF-8 – en cas de besoin, nous contacter |
Entrée |
CSTRING(32760) |
Chaîne dans
laquelle des signes particuliers doivent êtretransformés |
Sortie |
CSTRING(32760) |
Transformation
signifie ici substitution d’une lettre accentuée par une lettre
majuscule non accentuée |
á,
â, ã, à, ä, å, Á, Â, Ã, À, Ä, Å
=> A
é, ê, è, ë, É, Ê, È, Ë
=> E
í, î, ì, ï, Í, Î, Ì, Ï
=> I
ó, ô, õ, ò, ö, Ó, Ô, Õ, Ò, Ö
=> O
ú, û, ù, ü,Ú, Û, Ù, Ü
=> U
ç, Ç
=> C
ñ, Ñ
=> N
ý, ÿ, Ý
=> Y
TestSQL
SELECT 'AAAAAAAAAAAA' AS ISCORRECT,
F_COLLATEBR('áâãàäåÁÂÃÀÄÅ')
FROM RDB$DATABASE;
SELECT 'EEEEEEEE' AS ISCORRECT, F_COLLATEBR('éêèëÉÊÈË') FROM
RDB$DATABASE;
SELECT 'IIIIIIII' AS ISCORRECT, F_COLLATEBR('íîìïÍÎÌÏ') FROM
RDB$DATABASE;
SELECT 'OOOOOOOOOO' AS ISCORRECT, F_COLLATEBR('óôõòöÓÔÕÒÖ') FROM
RDB$DATABASE;
SELECT 'UUUUUUUU' AS ISCORRECT, F_COLLATEBR('úûùüÚÛÙÜ') FROM
RDB$DATABASE;
SELECT 'CC' AS ISCORRECT, F_COLLATEBR('çÇ') FROM RDB$DATABASE;
SELECT 'NN' AS ISCORRECT, F_COLLATEBR('ñÑ') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_COLLATEBR(NULL) FROM RDB$DATABASE; |
  |
F_KEYUP |
Fonction de adhoc
|
Entrypoint |
keyup |
pas compatible UTF-8 – en cas de besoin, nous contacter |
Entrée |
CSTRING(32760)
SMALLINT |
Chaîne contenant les
caractères à convertir
Longueur
de la chaîne de sortie |
Sortie |
CSTRING(32760) |
Chaîne telle qu’elle
résulte de la conversion |
Convertit une chaîne
-
en caractères haut de casse
- en ne prenant en considération
que les caractères alphanumériques, accentués inclus,
- et en
les remplaçant par leur équivalent non accentué.
Á, Â, Ã, À, Ä, Å
=> A
É, Ê, È, Ë
=> E
Í, Î, Ì, Ï
=> I
Ó, Ô, Õ, Ò, Ö
=> O
Ú, Û, Ù, Ü
=> U
Ç
=> C
Æ
=> AE
Ø
=> OE
ß
=> SS
Đ
=> D
Ñ
=> N
Ý
=> Y
- Tronque éventuellement la
chaîne produite selon la longueur donnée.
TestSQL
SELECT
'7A 5E 5I 6O 5U 2C 2AE 2OE 4S 2D 2N 2Y 1234567' AS ISCORRECT,
F_KEYUP('AáâãàäåEéêèëIíîìïOóôõòöUúûùüCçAEæOEøSSßDd.NñYý1234567890',
55)
FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_KEYUP(NULL,
NULL) FROM RDB$DATABASE; |
  |
F_PRED
|
Fonction
de adhoc
|
Entrypoint |
predecessor |
pas
compatible UTF-8 – emploie U_PRED |
U_PRED
|
Fonction
de adhoc
|
Entrypoint |
u_predecessor |
Compatibles UTF-8 |
Entrée |
CSTRING(1)
INTEGER |
Caractère pour lequel on recherche un suivant
Nombre de caractères en décalage en avant ou en
arrière par rapport au caractère du paramètre 1 |
Sortie |
CSTRING(1) |
Donne le caractère suivant ou précédent avec un
décalage exprimé par le paramètre 2 |
Si le paramètre a la valeur 512 (ou un multiple de
512) la sortie est la même que l’entrée.
Test SQL
SELECT 'b' AS ISCORRECT, F_PRED('a', 1) FROM RDB$DATABASE;
SELECT 'b' AS ISCORRECT, F_PRED('c', -1) FROM RDB$DATABASE;
SELECT 'a' AS ISCORRECT, F_PRED('a', 512) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_PRED(NULL, NULL) FROM RDB$DATABASE; |
  |
F_SUCC |
Fonction de adhoc
|
Entrypoint |
successor |
pas
compatible UTF-8 – emploie U_SUCC |
U_SUCC |
Fonction de adhoc
|
Entrypoint |
u_successor |
Compatibles UTF-8 |
Entrée |
CSTRING(1)
INTEGER |
Caractère pour lequel on recherche un précédent
Nombre de caractères en décalage en arrière ou en
avant par rapport au caractère du paramètre 1 |
Sortie |
CSTRING(1) |
Donne le caractère précédent ou suivant avec un
décalage
exprimé par le paramètre 2 |
Si le paramètre a la valeur 512 (ou un multiple de
512) la sortie est la même que l’entrée.
Test SQL
SELECT 'a' AS ISCORRECT, F_SUCC('b', 1) FROM RDB$DATABASE;
SELECT 'c' AS ISCORRECT, F_SUCC('b', -1) FROM RDB$DATABASE;
SELECT 'b' AS ISCORRECT, F_SUCC('b', 512) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_SUCC(NULL, NULL) FROM RDB$DATABASE; |
  |