Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 22/10/2015 11:27:55
- Papychampi
- Membre
[FONCTION] - Variable prise pour une colonne...
Informations Utiles:
Version: 9.4
Logiciel: PgAdminIII
Autre langage: PHP / Javascript
Message:
Bonjour à tous,
J'ai une petite fonction qui marcherais si ma variable était reconnue comme telle et pas comme une colonne... En gros cette fonction permet de vérifier le formatage d'un numéro de série...
CREATE OR REPLACE FUNCTION check_sn("_SN" text)
RETURNS boolean AS
$BODY$BEGIN
IF ('^[A-Z]{2}\#[0-9]{2}[0-5][0-9][A-D4][A-F][0-9]{3}[A-F0-9]{4}$' ~ _SN)
THEN
RAISE LOG 'Checking SN: OK!';
RETURN true;
ELSE
RAISE LOG 'Checking SN: FAILED!';
RETURN false;
END IF;
END;$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION check_sn(text)
OWNER TO postgres;
Hors ligne
#2 22/10/2015 11:30:28
- gleu
- Administrateur
Re : [FONCTION] - Variable prise pour une colonne...
Vous l'avez déclaré en tant que "_SN" et vous l'utilisez en tant que _SN (donc dans la parlance PG, _sn). Pas étonnant qu'il ne soit pas d'accord
Guillaume.
Hors ligne
#3 22/10/2015 11:47:59
- Papychampi
- Membre
Re : [FONCTION] - Variable prise pour une colonne...
Bonjour,
Déjà merci de votre réponse. Je voudrais juste savoir parce que ça m'intrigue pas mal aussi c'est que ma RegEx retourne toujours false... Même pour des chaines de caractères qui sont correctes...
Du genre celle ci:
AZ#2323BA765AEF4
Du coup pour que vous puissiez m'aider voici comment c'est fait:
NN#YYWWTFVVVDDDD
NN : A à Z
YY : 0 - 9
WW : 0-5 puis 0-9
T: A à D ou 4
F: A à F
VVV: 0 à 9
DDDD A à F / 0 à 9
Hors ligne
#4 22/10/2015 11:56:44
- rjuju
- Administrateur
Re : [FONCTION] - Variable prise pour une colonne...
Tout simplement, le pattern doit être à droite :
# select '^[A-Z]{2}\#[0-9]{2}[0-5][0-9][A-D4][A-F][0-9]{3}[A-F0-9]{4}$' ~ 'AZ#2323BA765AEF4';
?column?
══════════
f
(1 row)
# select 'AZ#2323BA765AEF4' ~ '^[A-Z]{2}\#[0-9]{2}[0-5][0-9][A-D4][A-F][0-9]{3}[A-F0-9]{4}$';
?column?
══════════
t
Julien.
https://rjuju.github.io/
Hors ligne
Pages : 1