Vous n'êtes pas identifié(e).
Pages : 1
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
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
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
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