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 16/09/2005, 10h26   #1
Invité de passage
 
Inscription : septembre 2005
Messages : 5
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 5
Points : 1
Points : 1
Par défaut Transformer un varchar(10000) en varchar(250)

Bonjour à tous,
je souhaiterai transformer un varchar(10000) en varchar(250) dans une requete. Je ne sais pas quelle fonction utiliser. J'ai tester celle-ci qui ne marche pas lorsqu'on dépasse 250 caractères.
Code :
NEW.debut =  CAST(NEW.texte AS VARCHAR(250));
jackop est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2005, 12h21   #2
Membre Expert
 
Inscription : avril 2005
Messages : 1 672
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 1 672
Points : 1 337
Points : 1 337
Je ne comprends pas bien.
Qu'est-ce que tu entends par "transformer" ?

Si tu veux dire modifier la taille d'un champ à l'affichage alors CAST devrait répondre à ta question comme tu l'utilises dans ton code.

Tu as un message d'erreur lorsque tu exécutes le bout de code que tu indiques ?
__________________
Modérateur des forums Oracle et Langage SQL
Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum
Magnus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2005, 13h53   #3
Invité de passage
 
Inscription : septembre 2005
Messages : 5
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 5
Points : 1
Points : 1
En fait je souhaite entrer les 250 premiers caractères du champ New.texte (type varchar(10000)) dans le champ New.debut (type varchar(250)).

le message d'erreur à l'exe est : arithmetic exception, numeric overflow or string troncation
jackop est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2005, 14h00   #4
Membre Expert
 
Inscription : avril 2005
Messages : 1 672
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 1 672
Points : 1 337
Points : 1 337
il faut que tu utilises l'UDF SUBSTR pour tronquer New.Texte à 250 caractères.

Si tu connais pas cette UDF fais quelques recherches sur ce forum du côté de la bibliothèque rfunc.dll
__________________
Modérateur des forums Oracle et Langage SQL
Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum
Magnus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2005, 14h28   #5
Invité de passage
 
Inscription : septembre 2005
Messages : 5
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 5
Points : 1
Points : 1
J'ai testé ça :
Code :
NEW.debut =  SUBSTR(NEW.texte, 1, 240);
et le message d'erreur est :
Code :
1
2
3
4
5
An error was found IN the application program input parameters FOR the SQL statement.
Dynamic SQL Error.
SQL error code = -804.
FUNCTION unknown.
SUBSTR.
jackop est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2005, 14h49   #6
Membre Expert
 
Inscription : avril 2005
Messages : 1 672
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 1 672
Points : 1 337
Points : 1 337
normal c'est ce que je te disais il faut que :
1/ tu télécharges la bibliothèque rfunc.dll pour disposer de la fonction SUBSTR
2/ tu déclares l'UDF SUBSTR
3/ tu exécutes ta requête qui va alors fonctionner
__________________
Modérateur des forums Oracle et Langage SQL
Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum
Magnus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2006, 17h49   #7
Candidat au titre de Membre du Club
 
Inscription : août 2004
Messages : 28
Détails du profil
Informations personnelles :
Âge : 39

Informations forums :
Inscription : août 2004
Messages : 28
Points : 10
Points : 10
Salut,

Un peu hors sujet :

Comment vous faite pour avoir un VarChar(1000),
Je suis limité à VarChar(255)
(Pardox avec TQuery, TDataSource et TDbGrid)
XioN 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 23h33.


 
 
 
 
Partenaires

Hébergement Web