Bonjour,
Comme vu sur ce post, on peut tester aisément si la chaîne de caractère est un number.

Mon souci est que je souhaite tester si c'est un entier et non un number.
Si je remplace dans le code ci-dessus le dummy number par dummy integer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
CREATE FUNCTION is_number(p_number VARCHAR2) RETURN NUMBER AS
dummy integer;
BEGIN
 
dummy := TO_NUMBER(p_number);
 
RETURN 1;
 
EXCEPTION WHEN OTHERS RETURN 0;
END;
/
cela ne résout pas mon problème.
Le to_number traduit le number en entier.

j'ai bien la solution de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
select DECODE(TRANSLATE('12345.1','0123456789',' '), NULL, 1,0) into nb from dual;
mais au niveau optimisation, je ne suis pas sûr que ce soit idéal.
Qu'en pensez-vous s'il vous plait?
Cordialement
Pinocchio