IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

Oracle10g: remplacer retour chariot (\n) dans chaine de caracteres


Sujet :

Oracle

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 58
    Points : 40
    Points
    40
    Par défaut Oracle10g: remplacer retour chariot (\n) dans chaine de caracteres
    bonjour,

    J'ai une colonne définié en VARCHAR2(2000).
    Certaines données comportent des retours chariots, représentés sous SQLPlus par des "petits carrés noirs".
    J'ai fait un SELECT de cette colonne redirigé vers un fichier texte.
    A l'ouverture de ce fichier dans un éditeur de texte, ces "petits carrés noirs" ont été interprétés par un retour chariot (\n).

    Je souhaite donc remplacer, dans mon SELECT, ces retour chariots par des espaces.
    J'ai essayé :

    replace(cnt.OBSERVATIONS, '\n',' ')

    mais cela ne fonctionne pas.

    Pouvez vous m'aider ?
    Merci d'avance.

    Isn44.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 81
    Points : 102
    Points
    102
    Par défaut
    Bonjour,

    Essaye : replace(cnt.OBSERVATIONS, CHAR(13),' ')

    J'espère que l'instruction va marcher...

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 58
    Points : 40
    Points
    40
    Par défaut Tjrs même pb
    Désolée, cela ne fonctionne pas.

    J'ai essayé un sous SQLPlus:

    select replace(observations,CHAR(13),' ') from fds_cnt;
    => ORA-00936: expression absente.

    alors que
    select replace(observations,'n',' ') from fds_cnt;
    => fonctionne.

    A noter:
    - Mes requetes sont dans un fichier.sql
    - Ce fichier.sql est appelé dans un fichier_decharger.bat, comme suit:
    sqlplus mon_user/mon_password@MaBase @%DIRSQL%\fichier.sql > %PRODRPT%\fichier.log

    merci quand meme.
    Autre idée?

    Isn44.

  4. #4
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    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 862
    Points : 3 609
    Points
    3 609
    Par défaut
    chr(10) et chr(13)
    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.

  5. #5
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    chr(10) pour le retour chariot.
    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

  6. #6
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 58
    Points : 40
    Points
    40
    Par défaut tjrs pas...
    désolée,

    replace(cnt.OBSERVATIONS, CHAR(10),' ')

    sous SQLPlus:
    => pas d'erreur
    => mais les "petits carrés noirs" sont toujours là

    En utilisant mon fichier SQL:
    =>Aucun remplacement de retour chariot dans le fichier.txt


    Autre idée ?

  7. #7
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 58
    Points : 40
    Points
    40
    Par défaut j'ai trouvé !!!!


    désolée PlaineR, je n'avais pas compris ta réponse.


    En fait il fallait remplacer les chr(10) ET chr(13) par un espace:

    Les lignes finissent par un passage à la ligne (chr(10)) et un retour chariot (char(13) ).


    ma solution est donc:
    select replace(replace(observations,chr(10),' '),chr(13),' ') from fds_cnt

    (si qlqn connait une instruction plus propre, je prend....)


    Merci à tous !

  8. #8
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT REPLACE(REPLACE(observations,CHR(10)),CHR(13)) FROM fds_cnt
    ou 
    SELECT TRANSLATE(observations,' ' || CHR(10) || CHR(13), ' ') FROM fds_cnt
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 81
    Points : 102
    Points
    102
    Par défaut
    pardon, essaye CHR(10) (CHR sans la lettre A)

    donc l'instruction est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    replace(cnt.OBSERVATIONS, CHR(10),' ')
    normalement ça devrait fonctionner

  10. #10
    Membre actif Avatar de DAB.cz
    Inscrit en
    Octobre 2006
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 221
    Points : 249
    Points
    249
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    SQL> select 'a'||chr(13)||chr(10)||'b' from dual;
     
    'A'|
    ----
    a
    b
     
     
    SQL> select dump ('a'||chr(13)||chr(10)||'b') from dual;
     
    DUMP('A'||CHR(13)||CHR(1
    ------------------------
    Typ=1 Len=4: 97,13,10,98
     
    SQL> select replace (replace ('a'||chr(13)||chr(10)||'b', chr (13)), chr (10)) from dual;
     
    RE
    --
    ab
     
    SQL> select dump (replace (replace ('a'||chr(13)||chr(10)||'b', chr (13)), chr (10))) from dual;
     
    DUMP(REPLACE(REPLA
    ------------------
    Typ=1 Len=2: 97,98
    Ca doit fonctionner!

    DAB

  11. #11
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 58
    Points : 40
    Points
    40
    Par défaut merci!
    je conserve ma solution car elle remplace les LF et CR par un espace.


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Supprimer les retours chariots d'une chaine de caractère
    Par Seb33300 dans le forum Général VBA
    Réponses: 3
    Dernier message: 31/01/2009, 22h50
  2. Retour chariot + récupération dans une variable JS
    Par seblo_scoqi dans le forum Langage
    Réponses: 12
    Dernier message: 03/12/2008, 10h37
  3. Remplacement retour chariot
    Par vva dans le forum ASP
    Réponses: 4
    Dernier message: 21/11/2008, 15h32
  4. Supprimer les retours chariots d'une chaine
    Par alexdfr dans le forum Delphi
    Réponses: 7
    Dernier message: 03/10/2006, 09h57
  5. xml->html : retour chariot, espaces dans un div
    Par d'Oursse dans le forum XML/XSL et SOAP
    Réponses: 9
    Dernier message: 27/04/2004, 19h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo