Précédent   Forum des professionnels en informatique > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/06/2011, 12h18   #1
Invité de passage
 
Inscription : août 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 9
Points : 2
Points : 2
Par défaut Conversions de types en procedure stockées FB 1.5

J'essaye vainement de convertir des chaines en nombres.
Je ne trouve pas ni en standard,ni dans les UDF ext_funcs l'equivalent de la fonction ord en pascal.
Je cherche, par exemple, à convertir la chaine '0002' en entier pour pouvoir
l'incrémenter et la repasser en chaine ('3').

Une piste ?
paumier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2011, 12h32   #2
Membre émérite
 
Homme Olivier Dehorter
Ingenieur de recherche - Ecologue
Inscription : juin 2003
Messages : 697
Détails du profil
Informations personnelles :
Nom : Homme Olivier Dehorter
Localisation : France

Informations professionnelles :
Activité : Ingenieur de recherche - Ecologue

Informations forums :
Inscription : juin 2003
Messages : 697
Points : 837
Points : 837
essayes

Code :
 CAST('0003' AS INTEGER)
(sous 2.5)

mais je ne sais pas si cela est implémenté en 1.5; mais cela est est pet-être l'occasion de passer en 2.5
dehorter olivier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 09h17   #3
Modérateur
 
Avatar de SergioMaster
 
Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 3 612
Détails du profil
Informations personnelles :
Nom : Serge Girard
Âge : 55
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 3 612
Points : 4 512
Points : 4 512
La fonction ord pascal pour un char c'est ASCII_VAL (enfin en 2.1) et son complément ASCII_CHAR

sinon les CAST fonctionnent très bien même en 1.5 comme le dit olivier

en 2.1
Code :
SELECT CAST(CAST('0002' AS INTEGER)+1 AS CHAR(4)) FROM RDB$DATABASE
donnera '3.0' mais pas '0003'
Code :
SELECT CAST(CAST(CAST('0002' AS INTEGER)+1 AS INTEGER) AS CHAR(4)) RDB$DATABASE
donneras '3' mais toujours pas de formattage avec remplissage de 0 à gauche

sinon FreeAdocUDF propose

Citation:
F_INTTOSTR Entrée/Sortie compatibles avec rFunc (INTTOSTR)
Entrypoint inttostr Compatibles UTF-8
Entrée INTEGER
CSTRING(254) Nombre entier à représenter
Format de représentation donné sous forme de chaîne selon les conventions de la fonction C sprintf
Sortie CSTRING(254) Nombre formaté sous forme de chaîne
TestSQL
SELECT '0000000013' AS ISCORRECT, F_INTTOSTR(13, '%010d') FROM RDB$DATABASE;
SELECT '0xd' AS ISCORRECT, F_INTTOSTR(13, '%#x') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_INTTOSTR(NULL, NULL) FROM RDB$DATABASE;
__________________
La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
SergioMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 10h49   #4
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 213
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant spécialité Firebird
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 2 213
Points : 3 315
Points : 3 315
Code :
1
2
3
4
5
SQL> SELECT LPAD(CAST(CAST('0002' AS INTEGER)+1 AS VARCHAR(4)),4,'0') FROM RDB$DATABASE;
 
LPAD
======
0003
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 18h54   #5
Invité de passage
 
Inscription : août 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 9
Points : 2
Points : 2
Par défaut Résolu

Merci à tous
paumier est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h45.


 
 
 
 
Partenaires

Hébergement Web