|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Inscription : juillet 2004 Messages : 393 ![]() |
Bonjour à tous,
avant de vous exposer mon problème, je vais vous expliquer ce que je souhaite faire pour savoir s'il y a une alternative. J'ai créer une fonction dans laquelle j'ai en argument1 le nom d'une table et en 2 un identifiant unique, cette fonction doit me renvoyer le MD5 de la concaténation de toutes les colonnes de l'identifiant de la table. Pour revenir à mon problème, il semblerait qu'une variable ne supporte pas plus de 2000 caractères en concaténation... Comment puis-je m'y prendre ? Merci de votre aide. |
|
|
00
|
|
|
#2 | ||
|
Membre émérite
![]() Inscription : août 2008 Messages : 835 ![]() |
Salut,
Je n'ai jamais entendu parler de telles limites. Ceci dit je ne prétends pas connaitre parfaitement Oracle. J'ai fait un test rapide, sous Oracle 9.2, ceci fonctionne : Code :
|
||
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() Inscription : juillet 2004 Messages : 393 ![]() |
Oui ton test marche bien, je comprends pas ce que j'ai comme problème alors...
En gros je remplis un tableau, si je boucle dessus en faisant un put_line j'ai bien toutes les informations renvoyées, par contre si je concatène toutes les données dans une variable ça ne fonctionne pas, enfin ça ne renvoi pas d'erreur mais ma variable est au 1/3 rempli avec les premières données, et la dernière données est coupée. |
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 320 ![]() |
En Sql il y a une limite de 4000 Bytes (ce qui peut signifier par fois 2000 caractères)
Citation:
Citation:
|
||
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() Inscription : juillet 2004 Messages : 393 ![]() |
En continuant mes tests, j'ai effacé 3 lettres d'un mot du début de mon tableau, et j'ai eu le droit à 3 lettres de + à la fin dans ma variable
ça montre bien que la variable est limitée |
|
|
00
|
|
|
#6 |
|
Membre émérite
![]() Inscription : août 2008 Messages : 835 ![]() |
Pourrait-on voir ton script stp?
|
|
|
00
|
|
|
#7 | ||
|
Membre régulier
![]() Inscription : juillet 2004 Messages : 393 ![]() |
Oui je crois que ça ira plus vite (attention c'est long pour la déclaration du tableau) :
Code :
|
||
|
|
00
|
|
|
#8 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 320 ![]() |
Et c'est quoi précisément ton problème dans cette fonction ?
|
|
|
00
|
|
|
#9 |
|
Membre régulier
![]() Inscription : juillet 2004 Messages : 393 ![]() |
le :
me renvoit une liste incomplète, il s'arrête aux environs du 30ème mot (qui est coupé en deux) |
|
|
00
|
|
|
#10 |
|
Membre émérite
![]() Inscription : août 2008 Messages : 835 ![]() |
C'est donc ton dbms_output.put_line qui n'affiche pas la totalité de la variable.
La variable est à priori bien complète. |
|
|
00
|
|
|
#11 | |||
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 523 ![]() |
Citation:
Code :
|
|||
|
|
00
|
|
|
#12 |
|
Membre régulier
![]() Inscription : juillet 2004 Messages : 393 ![]() |
Je crois que tu as raison.. j'ai fais un length et c'est vrai qu'il est plutôt pas mal....
merci de ton aide |
|
|
00
|
|
|
#13 |
|
Membre éprouvé
![]() Étudiant Inscription : novembre 2004 Messages : 739 ![]() |
Shadeoner, c'est résolu ou pas?
__________________
"Celui qui reconnaît consciemment ses limites est le plus proche de la perfection." Johann Wolfgang |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com