Fonctions
de chaînes : Traitements |
 |
F_LEFT
(F_LEFT4, F_LEFT8)
F_BIGLEFT |
Compatible
avec FreeUDFLib,
FreeUDFLibC, FreeUDFLib AvERP, GrUDF |
|
 |
remplaçable
par LEFT |
Entrypoint |
left |
|
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; |
  |
F_MID
(F_MID4, F_MID8)
F_BIGMID |
Compatible
avec
FreeUDFLib,
FreeUDFLibC, FreeUDFLib AvERP
Entrée/Sortie compatibles avec
IB_UDF |
|
 |
remplaçable
par SUBSTRING |
Entrypoint |
mid |
|
F_COPY
F_STRCOPY |
Compatible
avec GrUDF
Entrée/Sortie
compatibles avec
rFunc (SUBSTR, LONGSUBSTR) |
Entrypoint |
mid1 |
|
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 est la position 0,
pour F_COPY et F_STRCOPY 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; |
  |
F_RIGHT
(F_RIGHT4, F_RIGHT8)
F_BIGRIGHT |
Compatible
avec FreeUDFLib,
FreeUDFLibC, FreeUDFLib AvERP, GrUDF |
|
 |
remplaçable
par RIGHT |
Entrypoint |
right |
|
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; |
  |
F_SUBSTR
(F_SUBSTR4, F_SUBSTR8)
F_BIGSUBSTR
|
Compatible
avec FreeUDFLibC
Compatible
avec FreeUDFLibC
|
Entrypoint |
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 |
|
F_STRPOS |
Entrée/Sortie
compatibles avec rFunc (STRPOS) |
|
 |
remplaçable
par POSITION |
Entrypoint |
strpos |
|
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; |
  |
F_SUBSTRN
(F_SUBSTR)  |
Fonction
de adhoc |
Entrypoint |
substrn |
|
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 |
|
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 |
|
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 |
|
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; |
  |
F_RTRIM
(F_RTRIM4, F_RTRIM8)
F_BIGRTRIM |
Compatible
avec FreeUDFLib,
FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Entrée/Sortie
compatibles avec
rFunc (RTRIM, LONGRTRIM) |
|
 |
remplaçable
par TRIM |
Entrypoint |
rtrim |
|
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 |
|
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; |
  |
F_PADLEFT |
Compatible
avec FreeUDFLib,
FreeUDFLibC, FreeUDFLib AvERP, GrUDF |
|
 |
remplaçable
par LPAD |
Entrypoint |
padleft |
|
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) |
|
 |
remplaçable
par LPAD |
Entrypoint |
r_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; |
  |
F_PADRIGHT |
Compatible
avec FreeUDFLib,
FreeUDFLibC, FreeUDFLib AvERP, GrUDF |
|
 |
remplaçable
par RPAD |
Entrypoint |
padright |
|
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) |
|
 |
remplaçable
par RPAD |
Entrypoint |
r_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 |
|
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 |
|
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; |
  |
F_REPLACE
(F_REPLACE4, ...8)
F_BIGREPLACE |
Compatible
avec FreeUDFLibC
Entrée/Sortie
compatibles avec
rFunc (STRREPLACE, LONGSTRREPLACE) |
|
 |
remplaçable
par REPLACE |
Entrypoint |
replace |
|
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 |
|
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 |
|
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; |
  |
F_REVERSE |
Fonction
de adhoc
|
|
 |
remplaçable
par REVERSE |
Entrypoint |
reverse |
|
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 |
|
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 |
|
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 |
|
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 |
|
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_STRSTUFF |
Entrée/Sortie
compatibles avec rFunc (STRSTUFF, LONGSTRSTUFF) |
|
 |
remplaçable
par OVERLAY |
Entrypoint |
strstuff |
|
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 |
|
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 |
|
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 |
|
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 |
|
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; |
  |