Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1266 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  |SQL] Conversion Long en Chaine de caractère

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

|SQL] Conversion Long en Chaine de caractère

n°1581471
magicien96
Même pas peur @sato
Posté le 02-07-2007 à 14:27:19  profilanswer
 

Bonjour.
 
J'utilise les tables d'un logiciel propriétaire basé sur Oracle. Dans celles-ci, j'ai besoin de récupérer les données d'une colonne de type LONG qui stocke des chaines de caractères.
L'inconvénient, je doit convertir le résultat sql en chaine afin de supprimer les '>' et '<', pour que ce dernier puisse être insérer dans un document xml (je veux donc faire un replace sur le résultat)
 
J'ai essayé :  
select to_char(colonne1) from table;
select to_lob(colonne1) from table;
select to_clob(colonne1) from table;
 
Impossible d'avoir ma chaine, il me jète tout le temps.
 
Je ne peux malheureusement pas passé par une table supplémentaire avec une colonne en clob :(
Impossibilité aussi d'utiliser du pl/sql, je suis limité au sql simple.
 
Une idée ?
 
Donc je vois pas trop comment m'en sortir.


---------------
Ils ne savaient pas que c'était impossible, alors ils l'ont fait. ©Mark Twain
mood
Publicité
Posté le 02-07-2007 à 14:27:19  profilanswer
 

n°1581491
magicien96
Même pas peur @sato
Posté le 02-07-2007 à 15:08:41  profilanswer
 

Par étape, ça ça marche :

Code :
  1. insert into temporaryLob select ownerid, to_lob(segment) from klong;
  2. select x as id,
  3. replace( replace(y, '<', '&lt;'), '>', '&gt;') as data
  4. from temporaryLob;
  5. delete from temporaryLob;


 
Le tout, ce serait de ne pas passer par une table temporaryLob, mais je vois pas trop comment faire :(


---------------
Ils ne savaient pas que c'était impossible, alors ils l'ont fait. ©Mark Twain
n°1581560
casimimir
Posté le 02-07-2007 à 16:33:43  profilanswer
 

en fait ca depend du genre de lob que c'est, genre si c'est du longraw c'est la merde...
 
essaye de t'inspirer de ca:
 

Code :
  1. insert into table_destination
  2.   select b_key,UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(b_blob,DBMS_LOB.GETLENGTH(b_blob)+1,1))
  3.   from table_source


Message édité par casimimir le 02-07-2007 à 16:33:52
n°1581570
magicien96
Même pas peur @sato
Posté le 02-07-2007 à 16:50:53  profilanswer
 

A la base, le lob, c'est moi qui l'ai créé donc j'ai mis un clob (oracle..)

 

Apparemment, on ne peut pas dépasser un certain nombre de caractère avec cette fonction.

 

J'ai réussi un cast qui monte à 4000 octets (taille max d'un varchar) mais ce n'est pas encore suffisant :(

 

(l'affichage ne supporte pas les lob :()


Message édité par magicien96 le 02-07-2007 à 16:53:38

---------------
Ils ne savaient pas que c'était impossible, alors ils l'ont fait. ©Mark Twain
n°1581667
MagicBuzz
Posté le 02-07-2007 à 21:41:05  profilanswer
 

ce qu'indique casimir est la marche à suivre pourtant : tu dois saucissonner ton cblob en chaînes de 4000 caractères grace aux fonctions du package DBMS_LOB, puis faire des traîtements sur ces tranches de saucisson.

n°1582302
magicien96
Même pas peur @sato
Posté le 04-07-2007 à 11:16:35  profilanswer
 

MagicBuzz a écrit :

ce qu'indique casimir est la marche à suivre pourtant : tu dois saucissonner ton cblob en chaînes de 4000 caractères grace aux fonctions du package DBMS_LOB, puis faire des traîtements sur ces tranches de saucisson.


 
C'est bon j'ai réussi avec vos conseils :jap:
 
Par contre, 1 table de plus et 4 requêtes au lieu d'une :( (insertion, taille, selection avec segmentation et enfin suppression)


---------------
Ils ne savaient pas que c'était impossible, alors ils l'ont fait. ©Mark Twain

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  |SQL] Conversion Long en Chaine de caractère

 

Sujets relatifs
[SQL Server 2005] Restauration d'une table dans une autre[RESOLU] Une liste de pays dans ma base de données SQL
[SQL server et ODBC] PB erreur 3151 aléatoire !Une erreur SQL qui m'est inconnue
[SQL] Probleme avec mon site et SQL ![SQL 2005] Problème pour une requête SELECT
Supprimer le premier caractère d'une chaine[Javascript - URGENT] traitement de chaine de caractère - Résolu
Plus de sujets relatifs à : |SQL] Conversion Long en Chaine de caractère


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR