- Limitation des varchar2 [Resolu] [Oracle] - SQL/NoSQL - Programmation
Marsh Posté le 23-10-2006 à 16:55:40
erf
il faut faire en deux passes.
déjà, tu crées tes lignes sans mettre de valeur dans tes clobs.
ensuite, tu fait une seconde passe qui fait des dbms.chaisplusquoi() qui sert à ajouter dans un clob une chaîne (sans effacer ce qu'il y avait déjà)
et tu peux donc remplir chaque ligne par blocs de 2000 caractères.
regarde la doc oracle en ce qui concerne les fonction de gestion des clob
Marsh Posté le 25-10-2006 à 09:18:59
Après moults recherche finalement la solution est sous, sqlplus :
Code :
|
--
Rakken
Marsh Posté le 23-10-2006 à 16:20:30
Bonjour.
Dans le cadre d'une migration mysql -> oracle je me suis retrouvé dans le cas suivant :
J'ai un champ text sous mysql qui contient des données assez volumineuse ( > 8000 caractères) et je voudrai les mettre dans un champ CLOB sous oracle.
Jusque ici, pas de problème, mais à chaque insert contenant ces données volumineuses, j'obtiens l'erreur suivante :
SP2-0027: Input is too long (> 2499 characters) - line ignored
Après recherche, la premiere solution consiste a splitter la chaine, du genre 'ma chaine ' || 'qui est très grande'
Effectivement, j'ai un peu plus de lignes qui se font inserer, mais j'obtiens alors l'erreur :
ORA-01489: result of string concatenation is too long
En effet, une concaténation renvoie un varchar2 et les varchars sont limité a 4000 caractères.
Bref, comment faire pour faire mes insertion avec des champs dont le contenu est supérieur a 4000 caractères ???
Merci d'avance ;-)
--
Rakken
Message édité par rakken le 25-10-2006 à 17:15:06