Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
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 03/09/2007, 17h03   #1
Invité régulier
 
Inscription : février 2007
Messages : 47
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 47
Points : 9
Points : 9
Par défaut formattage chaine de caracteres

Bonjour a tous,

Je fais des extractions de donnees sur une base oracle...
je veux extraire un champs chaine de caractere qui à l'origine est un varchar(100) mais les chaines de caracteres dans ce champs en general n'atteignent pas 100...mais quand je fais mon extraction il extrait les 100 de telle sorte qu'il y a assez de blanc...je voudrais extraire la chaine de caracteres selon sa taille, si elle est de 10 meme si elle a ete déclare varchar(100), je veux extraire exactement les 10 et non 100 avec avec du blanc pour remplir les 100....
Jespere avoir bien expliqué ma situation, merci par avance.
esthr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2007, 17h08   #2
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 533
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 533
Points : 6 469
Points : 6 469
Extraction avec quel outil ?
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2007, 17h09   #3
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

Informations professionnelles :
Activité : Chef de projet
Secteur : Bâtiment

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
1) passe ton champ en varchar2
si tu ne peux pas faire une modif de structure

Code :
1
2
 
SELECT RTRIM(mon_champ) FROM matable
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2007, 17h33   #4
Invité régulier
 
Inscription : février 2007
Messages : 47
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 47
Points : 9
Points : 9
Merci a tous,

je fais les extractions avec sqlplus sous dos de windows...
malheureusement je ne peux pas changer la structure du champs en varchar2 comme indiqué...j'ai utilisé rtrim mais c toujours la meme chose je ne sais pas trop pourquoi...
Merci
esthr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2007, 17h41   #5
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Si tu nous indiquais ce que tu fais et mieux encore un exemple de ce que tu veux obtenir, nos réponses seraient sans aucun doute plus pertinentes que si on doit deviner...
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2007, 17h42   #6
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

Informations professionnelles :
Activité : Chef de projet
Secteur : Bâtiment

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
Citation:
Envoyé par esthr Voir le message
Bonjour a tous,

Je fais des extractions de donnees sur une base oracle...
je veux extraire un champs chaine de caractere qui à l'origine est un varchar(100) mais les chaines de caracteres dans ce champs en general n'atteignent pas 100...mais quand je fais mon extraction il extrait les 100 de telle sorte qu'il y a assez de blanc...je voudrais extraire la chaine de caracteres selon sa taille, si elle est de 10 meme si elle a ete déclare varchar(100), je veux extraire exactement les 10 et non 100 avec avec du blanc pour remplir les 100....
Jespere avoir bien expliqué ma situation, merci par avance.
Et bien, c'est normal !
Sql*plus reserve le nb de caractères maximum pour afficher la colonne (cad 100 caractères) !
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2007, 17h55   #7
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

Informations professionnelles :
Activité : Chef de projet
Secteur : Bâtiment

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
voir discussion similaire
Oui , d'accord, c'est sur des formats de nombre, mais y'a matière...
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2007, 18h00   #8
Invité régulier
 
Inscription : février 2007
Messages : 47
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 47
Points : 9
Points : 9
Merci a tous,

jai par exemple un champs libelle dune table avec
libelle = "forum develloppement oracle"
moi je veux extraire effectivement "forum develloppement oracle" mais l'extraction me donne
"forum develloppement oracle bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"

b pour dire blanc; c' normal car c varchar2(100) mais je cherche un myen d'extraire exactement la chaine de caracteres sans blanc apres...
j'espere avoir été plus claire...merci par avance.
esthr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2007, 18h04   #9
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

Informations professionnelles :
Activité : Chef de projet
Secteur : Bâtiment

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
Envoie nous le texte de la requête que tu fais !
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2007, 18h21   #10
Invité régulier
 
Inscription : février 2007
Messages : 47
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 47
Points : 9
Points : 9
Merci a tous,
ma requete ressemble à celle ci-dessous que j'execute avec sqlplus sous dos
le champs dont je parlais est le a.libelle

sqlplus user/password@chainedeconnexion @requete

set head off;
set pagesize 0;
set linesize 2000;
set numwidth 50;
set feedback off;
set colsep '|';
spool mvtncghr
select b.nc,c.klib,a.tcom,b.nommo,b.devuoi,a.datyou,a.dddatgal,a.mnt,a.libelle,a.egb,a.lpi
from ligt a,risp b,libt c
where a.tcom = b.tcom
and b.nc = c.nc
and b.nc in ('741331100','3388522500','4125332600','417379100')
and a.datyou between to_date('01'||'01'||to_char((select roit from detat),'yyyy'),'dd/mm/yyyy') and (select roit from detat);
spool off;
exit;
esthr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2007, 09h27   #11
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Merci de penser à utiliser les balises codes

Tu peux faire un substr sur ta colonne avec le nombre de caractères max que tu veux afficher.
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2007, 09h32   #12
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

Informations professionnelles :
Activité : Chef de projet
Secteur : Bâtiment

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
Quelques astuces
- Pour prendre le 1 jour de l'année d'une date faire TRUNC(date,'YYYY')
- mettre detat dans le from
Code :
1
2
3
4
5
6
7
8
9
10
11
12
FROM ligt a,risp b,libt c,detat r
WHERE a.compte = b.compte
 AND b.nc = c.nc
 AND b.nc IN ('741331100', '3388522500', '4125332600', '417379100')
 AND a.datyou BETWEEN 
TRUNC(r.roit,'YYYY')
/*TO_DATE ('01' || '01' || TO_CHAR (r.roit),
                                                        'yyyy'),
                               'dd/mm/yyyy'
                              )*/
                  AND r.roit
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2007, 12h52   #13
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 927
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 927
Points : 4 549
Points : 4 549
Citation:
Envoyé par esthr Voir le message
set colsep '|'
select b.nc,c.klib,a.tcom,b.nommo,b.devuoi,a.datyou,a.dddatgal,a.mnt,a.libelle,a.egb,a.lpi
from ligt a,risp b,libt c
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
SELECT
  b.nc||'|'||
  c.klib||'|'||
  a.tcom||'|'||
  b.nommo||'|'||
  b.devuoi||'|'||
  a.datyou||'|'||
  a.dddatgal||'|'||
  a.mnt||'|'||
  a.libelle||'|'||
  a.egb||'|'||
  a.lpi 
FROM ligt a,risp b,libt c
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2007, 13h03   #14
Invité régulier
 
Inscription : février 2007
Messages : 47
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 47
Points : 9
Points : 9
Merci a tous

Merci aussi pour cette astuce avec la fonction TRUNC, je viens de modifier ma requete et toutes mes requetes où j'utilisais des dates dans le meme contexte...merci encore...Merci aussi pour cette astuce avec la concatenation avec des pipes ça marche...on apprend toujours...
esthr 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 09h18.


 
 
 
 
Partenaires

Hébergement Web