Pas de problème (pb), que du PowerBuilder (PB) ^^

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 07-06-2007 07:29:11

mial  
White & The Farmerz Gang
Lieu: Nancy
Date d'inscription: 09-02-2007
Messages: 113
Pépites: 4,366
Banque: 18,191,568,319,324

[RESOLU] Les décimaux avec Oracle

Bonjour,

je viens de récupérer un programme qui dans le code, insère grâce à une requête en powerscript ,une ligne sur une table d'une base Oracle.

Rien de sorcier jusque la. Mon souci intervient sur 2 champs de cette table car ils s'agit de numéric(9,2) dans la table et de décimaux dans le code.
Une erreur Oracle m'est rétournée, indiquant qu'il ne peut insérer ces nombres. ("ORA-01722 : Nombre non valide")

Le pb vient probablement du spéparateur des entiers avec les décimaux ( une ',' dans Oracle et un '.' en powerscript)

Des solutions?

Hors ligne

 

#2 07-06-2007 07:39:32

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Les décimaux avec Oracle

Salut, je me suis déjà et avec cette histoire de . et , sous Oracle...

pas de solution miracle, en fait il y a pas mal de paramètres :
* langue et paramètres régionaux de l'os du serveur oracle
* langue et paramètres régionaux de la base oracle (généraux ou de session)
* langue et paramètres régionaux de l'os du PC client
* langue et paramètres du client Oracle du PC client
* PB (sqlca.parm,...)



en principe, si c'est possible, il faut s'arranger pour ne rien toucher à la config serveur...

regarde ici pour plus d'infos


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#3 07-06-2007 07:41:09

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: [RESOLU] Les décimaux avec Oracle

ah oui éternel problème :|

Hors ligne

 

#4 07-06-2007 07:58:33

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] Les décimaux avec Oracle

ta base oracle est toujours configurée en "," pour les decimaux ?


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#5 07-06-2007 08:10:27

mial  
White & The Farmerz Gang
Lieu: Nancy
Date d'inscription: 09-02-2007
Messages: 113
Pépites: 4,366
Banque: 18,191,568,319,324

Re: [RESOLU] Les décimaux avec Oracle

eRaSorZ a écrit:

Salut, je me suis déjà et avec cette histoire de . et , sous Oracle...

pas de solution miracle, en fait il y a pas mal de paramètres :
* langue et paramètres régionaux de l'os du serveur oracle
* langue et paramètres régionaux de la base oracle (généraux ou de session)
* langue et paramètres régionaux de l'os du PC client
* PB...



en principe, si c'est possible, il faut s'arranger pour ne rien toucher à la config serveur...

regarde ici pour plus d'infos

Il serait effectivement préférable de ne pas toucher à la config du serveur.

J'ai changé mes parametres locaux : ',' à la place de '.' sur mon poste. Mes décimaux sont désormais affichés comme 'XX,XX' quand je passe l'appli au debuger. Mais toujours la même erreur.

pick ouic a écrit:

ta base oracle est toujours configurée en "," pour les decimaux ?

Commen ca toujours?

Hors ligne

 

#6 07-06-2007 08:26:54

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] Les décimaux avec Oracle

euh rien...

sinon, tu passes par des procédures stockées ? au niveau des enregistrements ?
si oui, tu passes le decimal en Varchar ( tout en mettant la virgule à la place du point) , et depuis ta proc, tu reconvertis en numerique.


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#7 07-06-2007 08:37:24

mial  
White & The Farmerz Gang
Lieu: Nancy
Date d'inscription: 09-02-2007
Messages: 113
Pépites: 4,366
Banque: 18,191,568,319,324

Re: [RESOLU] Les décimaux avec Oracle

pick ouic a écrit:

euh rien...

sinon, tu passes par des procédures stockées ? au niveau des enregistrements ?
si oui, tu passes le decimal en Varchar ( tout en mettant la virgule à la place du point) , et depuis ta proc, tu reconvertis en numerique.

Pas du tout.
Comme je l'ai di, il y a un INSERT INTO ma Table (...) Values(...) en dur dans le code powerscript de la fenêtre.

Hors ligne

 

#8 07-06-2007 08:42:41

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] Les décimaux avec Oracle

mial a écrit:

pick ouic a écrit:

euh rien...

sinon, tu passes par des procédures stockées ? au niveau des enregistrements ?
si oui, tu passes le decimal en Varchar ( tout en mettant la virgule à la place du point) , et depuis ta proc, tu reconvertis en numerique.

Pas du tout.
Comme je l'ai di, il y a un INSERT INTO ma Table (...) Values(...) en dur dans le code powerscript de la fenêtre.

donc, tu peux faire dans le insert into...
un convert(numerique (ou quelque chose comme ca, par rapport à oracle), ls_valeur)


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#9 07-06-2007 08:48:31

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Les décimaux avec Oracle

ça donne quoi quand tu fais

Code: pb

INSERT INTO ma Table ( champ_decimal, ... ) Values( to_number( :ic_valeur), ...)

N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#10 07-06-2007 09:49:26

mial  
White & The Farmerz Gang
Lieu: Nancy
Date d'inscription: 09-02-2007
Messages: 113
Pépites: 4,366
Banque: 18,191,568,319,324

Re: [RESOLU] Les décimaux avec Oracle

Parfait!

Je convertis en String mon decimal puis appel à la fonction To_NUMBER(... , ...) dans ma requete.

Merci pour tout.

PB RESOLU

Hors ligne

 

#11 07-06-2007 10:00:49

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] Les décimaux avec Oracle

Ton nombre décimal en PB comment l'as-tu déclaré ?

Essayes la deuxième :

Code: PB

decimal ld_toto1
decimal{2} ld_toto2 


N'oublies pas non plus le paramètre "DecimalSeparator" du DbParm :

Code: PB

SQLCA.DBParm = "DecimalSeparator='.'"

Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#12 07-06-2007 10:44:35

mreminiac  
Membre Geek
Lieu: Marseille
Date d'inscription: 29-05-2006
Messages: 56
Pépites: 321
Banque: 0

Re: [RESOLU] Les décimaux avec Oracle

Bonjour à Tous

Petit Conseil
Lors de l'installation  OracleClient en local laisser comme langue AMERICA.
Eviter de mettre FRENCH.


Migration PB11
Oracle 9I
XP Pro

Hors ligne

 

#13 07-06-2007 12:47:58

mial  
White & The Farmerz Gang
Lieu: Nancy
Date d'inscription: 09-02-2007
Messages: 113
Pépites: 4,366
Banque: 18,191,568,319,324

Re: [RESOLU] Les décimaux avec Oracle

Code: PB

SQLCA.DBParm = "DecimalSeparator='.'"


La meilleure solution pour l'instant.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22