Précédent   Forum des professionnels en informatique > Bases de données > Sybase
Sybase Forum sur la base de données Sybase. Avant de poster -> F.A.Q Sybase, Tutoriels Sybase
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 06/04/2007, 12h55   #1
Invité de passage
 
Inscription : février 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 23
Points : 1
Points : 1
Par défaut Sortie en erreur -> Truncation error occurred

Bonjour,

Lorsque j'exécute la reqête suivante, SYBASE sort en erreur.
Le SELECT seul fonctionne, mais en INSERT INTO ça ne fonctionne pas

Cette astuce "sale" (convert(datetime,'01' + '/' + substring(convert(char,rate_date,103),5,2) + '/' + substring(convert(char,rate_date,103),1,4),103)) est faite car ce champ est au format INT dans la table d'entrée (je sais ç moche)

Auriez-vous une solution à m'apporter ?

BEGIN
INSERT INTO OPPD01_REF..tbo_suivi_ca_1 (Mois_Valorisation,Total_Calls,Total_Montants)
SELECT convert(datetime,'01' + '/' + substring(convert(char,rate_date,103),5,2) + '/' + substring(convert(char,rate_date,103),1,4),103) AS Mois_Valorisation, -- Mois de Communication
sum(total_calls) AS Total_Calls, -- NB Total de CDR
sum(total_amount) AS Total_Montants -- Sommes des montants
FROM OPPD01_DB..NEUF_COMPACTED_CDR
GROUP BY convert(datetime,'01' + '/' + substring(convert(char,trans_date,103),5,2) + '/' + substring(convert(char,trans_date,103),1,4),103)
END


------------------------ Execute ------------------------
Truncation error occurred.
Command has been aborted.
(0 rows affected)
------------------------- Done --------------------------
jfmerveille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2007, 13h47   #2
Membre confirmé
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 181
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2006
Messages : 181
Points : 267
Points : 267
Quel est le 'format' de ton nombre, AAAAMMJJ, JJMMAAA ... ?
tu selectionnes sur rate_date et tu groupe sur trans_dat !?
Jean.Cri1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2007, 08h32   #3
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
Si j'ai bien lu ton code "rate_date" est de la forme AAAAMMJJ.

Dans ce cas tu devrais pouvoir faire comme ceci:

Code :
1
2
 
SELECT substring(convert(varchar, rate_date), 1, 6) + "01"
En tous les cas cela marche sur mon serveur de test:
Code :
1
2
3
4
5
6
7
8
 
[131] DBA_SQL.testdb.1> CREATE TABLE t1 (d date);
[132] DBA_SQL.testdb.1> CREATE TABLE t2 (m int);
 
[138] DBA_SQL.testdb.1> INSERT t2 VALUES(20070405);
(1 row affected)
[139] DBA_SQL.testdb.1> INSERT t1 SELECT substring(convert(varchar, m), 1, 6) + "01" FROM t2;
(1 row affected)
Michael
__________________
Michael Peppler
Membre de TeamSybase - www.teamsybase.com

"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h31.


 
 
 
 
Partenaires

Hébergement Web