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 10/10/2007, 17h42   #1
Membre Expert
 
Avatar de jbrasselet
 
Homme Julien Brasselet
Ingénieur développement logiciels
Inscription : mars 2006
Messages : 952
Détails du profil
Informations personnelles :
Nom : Homme Julien Brasselet
Âge : 32
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2006
Messages : 952
Points : 1 382
Points : 1 382
Envoyer un message via MSN à jbrasselet
Par défaut Problème avec un script très long

Bonjour,
voici un petit souci que je viens de rencontrer alors que je créait un script d'insertion de données dans une base Oracle (via Toad ou sql*plus)

J'ai une table qui contient 2 champs (un champ nom de type varchar et un champ xsl de type clob)

Mon script se résume en gros à faire un insert dans cette table

Code :
INSERT INTO feuille_xsl(nom, xsl) value('factivite.xsl','###mon flux xsl###')
Or mon flux xsl est très très long et l'exécution de mon script me renvoie une erreur :
Code :
ORA-01704: constante de chaîne trop longue
Y-a-t-il un moyen de résoudre cela? Je n'ai rien trouvé de bien probant ou qui me parle...

Merci d'avance
__________________
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai.
jbrasselet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2007, 21h31   #2
Membre confirmé
 
Avatar de DAB.cz
 
Inscription : octobre 2006
Messages : 221
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 221
Points : 214
Points : 214
Divise la constante - il faut construire le LOB des pièces, comme ça par ex.:

Code :
1
2
3
4
5
6
7
8
9
10
11
 
declare
  xxx clob;
begin
  INSERT INTO feuille_xsl(nom, xsl) value('factivite.xsl',empty_clob)
    returning xsl INTO xxx;
  dbms_lob.writeappend (xxx, '###mo');
  dbms_lob.writeappend (xxx, 'n flux xs');
  dbms_lob.writeappend (xxx, 'l###');
end;
/
DAB
DAB.cz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2007, 11h03   #3
Membre Expert
 
Avatar de jbrasselet
 
Homme Julien Brasselet
Ingénieur développement logiciels
Inscription : mars 2006
Messages : 952
Détails du profil
Informations personnelles :
Nom : Homme Julien Brasselet
Âge : 32
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2006
Messages : 952
Points : 1 382
Points : 1 382
Envoyer un message via MSN à jbrasselet
Désolé du temps de réponse et merci!

Ca fonctionne impec
Enfin après 2/3 modifications car la fonction dbms_lob.writeappend prend 3 paramètres

Code :
dbms_lob.writeappend (xslclob, length(text), text);
__________________
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai.
jbrasselet est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h34.


 
 
 
 
Partenaires

Hébergement Web