|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Benjamin Stagiaire développement logiciel Inscription : février 2011 Messages : 55 ![]() |
Hello !
Alors voilà, Je dois travailler sous oracle et y enregistrer des bouts de code. Etant donné que ces bouts de code doivent parfois dépasser les 4000 caractères, je compte les enregistrer dans un CLOB. Mon problème est le suivant : des simples quotes (-> ' <-) permettent de définir le texte à insérer dans le clob. Si je mets des guillemets (-> " <-) il s'embrouille et pense que je parle de colonne : "ORA-00984: Un nom de colonne n'est pas autorisé ici". Mais dans mon code j'ai des lignes du style println '42'. Sous easyPHP je mettais des guillemets sans problème. Là quelqu'un connait-il un moyen pour insérer des quotes dans un clob sans qu'Oracle croie que je ferme le texte ? J'ai déjà tenté le classique \', mais ça ne fonctionne pas. Merci ! |
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() O. JolySupport Inscription : décembre 2010 Messages : 287 ![]() |
il suffit de doubler le caractère.
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Benjamin Stagiaire développement logiciel Inscription : février 2011 Messages : 55 ![]() |
Ah oui ^^
J'avais mis delestage aussi car j'avais réussi en mettant des guillemets, mais je préfère cette solution, merci Bon, maintenant, j'ai un problème d'erreur ORA-01704: constante de chaîne trop longue dans mon clob, ce qui est un comble pour un type censé être capable de contenir plusieurs Go de données... (cf mon message d'à coté) |
|
|
00
|
|
|
#4 |
|
Membre chevronné
![]() O. JolySupport Inscription : décembre 2010 Messages : 287 ![]() |
Vous ne pouvez pas mettre plus de 32767 caractères directement dans un clob, par contre par petits morceaux en utilisant dbms_lob.writeappend vous pouvez en mettre quelques millions
|
|
00
|
|
|
#5 |
![]() ![]() |
Jusqu'à 128 To en 11g :
http://download.oracle.com/docs/cd/B.../limits001.htm
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#6 | |
|
Nouveau Membre du Club
![]() Benjamin Stagiaire développement logiciel Inscription : février 2011 Messages : 55 ![]() |
Citation:
Seulement dans mon cas, il s'énerve pour environ 4k5 ou 5k caractères, je suis loin des 32k. Y a-t-il un moyen particulier d'enregistrer des caractères dans le clob qui permette plus de choses qu'un simple insert into ? |
|
|
|
00
|
|
|
#7 |
![]() Inscription : décembre 2002 Messages : 2 385 ![]() |
Comme on n'a ni votre version d'Oracle, ni votre code pour voir comment vous vous y prenez, on va avoir du mal à avancer...
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
|
|
10
|
|
|
#8 |
|
Nouveau Membre du Club
![]() Benjamin Stagiaire développement logiciel Inscription : février 2011 Messages : 55 ![]() |
Hello,
Ma version d'Oracle est 10g. Ceci dit, mon problème initial est résolu : il suffit de doubler le '. Cependant, doubler une quote n'est pas compatible avec l'utilisation que je souhaite faire du texte après, à savoir l'importer dans un string java. Je vais certainement chercher à apprendre comment manipuler les Blobs, qui contiendront un fichier texte que je pourrai parser en java. Merci pour vos réponses. |
|
|
00
|
|
|
#9 | ||
![]() Inscription : décembre 2002 Messages : 2 385 ![]() |
A partir de la 10g, vous pouvez protéger une chaîne qui contient des caractères spéciaux, notamment l'apostrophe, par un Q initial et des caractères d'encadrement symétriques au choix : (), {} [], !!, etc.
Avec ce mécanisme, il n'y a plus besoin de doubler les apostrophes. Le Q se met en dehors de la chaîne, mais les caractères d'encadrement à l'intérieur. Code :
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
||
|
|
10
|
|
|
#10 |
![]() ![]() |
Pour être un peu plus précis, en 10g le type varchar2 est limité à 4000 caractères en SQL mais 32767 en PL/SQL.
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#11 | |
|
Nouveau Membre du Club
![]() Benjamin Stagiaire développement logiciel Inscription : février 2011 Messages : 55 ![]() |
Citation:
Mais je n'ai pas résolu mon problème de taille, vu que je ne connais pour le moment que le sql, je découvre à peine le pl/sql. Et si j'en crois Waldar, seul le pl/sql me permettrait de dépasser cette limite. Quelqu'un a-t-il un bout de code ou un tuto pour que je sache comment m'occuper de ça ? Merci d'avance ! |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com