Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Champ texte

3 réponses
Avatar
Daniel Corréia
Bonjour,


J'ai besoin de stocker et manipuler un champ texte de longueur assez
importante (20.000 caractères)...


1- En utilisant une colonne de type TEXT, je ne peux pas la manipuler
ensuite (impossible d'utiliser par exemple la fonction REPLACE, ou de typer
une variable locale de type text dans une procédure stockée...)


2- En utilisant plusieurs colonnes varchar de 8000 caractères (maxi
autorisé), je ne peux pas stocker le texte : le driver ODBC me répond qu'il
ne peut créer une ligne d'une longueur supérieure à 8064 caractères,
pourtant SQL Server m'a laissé créer 3 colonnes de type varchar de 8000
caractères chacune...


Je voulais savoir s'il n'y a pas moyen de contourner les problèmes décrits
ci-dessus.


Merci

--
Daniel CORREIA

3 réponses

Avatar
Michel Walsh
Salut,


Pour ce qui est de la longueur de l'enregistrement, un enregistrement ne
peut occuper plus d'une page (et c'est moins que 8192 dû à l'entête de la
page et autre). Un varchar(n) ne mobilise pas forcément, nécessairement,
l'espace annoncé comme le ferait un char(n), mais seulement l'espace qui est
requis.


Espérant être utile,
Vanderghast, Access MVP


"Daniel Corréia" wrote in message
news:
Bonjour,


J'ai besoin de stocker et manipuler un champ texte de longueur assez
importante (20.000 caractères)...


1- En utilisant une colonne de type TEXT, je ne peux pas la manipuler
ensuite (impossible d'utiliser par exemple la fonction REPLACE, ou de


typer
une variable locale de type text dans une procédure stockée...)


2- En utilisant plusieurs colonnes varchar de 8000 caractères (maxi
autorisé), je ne peux pas stocker le texte : le driver ODBC me répond


qu'il
ne peut créer une ligne d'une longueur supérieure à 8064 caractères,
pourtant SQL Server m'a laissé créer 3 colonnes de type varchar de 8000
caractères chacune...


Je voulais savoir s'il n'y a pas moyen de contourner les problèmes


décrits
ci-dessus.


Merci

--
Daniel CORREIA




Avatar
Daniel Corréia
Comment faites-vous lorsque vous devez gérer des champs d'une longueur >
8192 caractères ?

pas seulement stocker (car un type text répond à ce besoin), mais gérer avec
par exemple du parsing au sein d'une procédure stockée ?



"Michel Walsh" a écrit dans le message
de news: #U#
Salut,


Pour ce qui est de la longueur de l'enregistrement, un enregistrement


ne
peut occuper plus d'une page (et c'est moins que 8192 dû à l'entête de la
page et autre). Un varchar(n) ne mobilise pas forcément, nécessairement,
l'espace annoncé comme le ferait un char(n), mais seulement l'espace qui


est
requis.


Espérant être utile,
Vanderghast, Access MVP


"Daniel Corréia" wrote in message
news:
> Bonjour,
>
>
> J'ai besoin de stocker et manipuler un champ texte de longueur assez
> importante (20.000 caractères)...
>
>
> 1- En utilisant une colonne de type TEXT, je ne peux pas la manipuler
> ensuite (impossible d'utiliser par exemple la fonction REPLACE, ou de
typer
> une variable locale de type text dans une procédure stockée...)
>
>
> 2- En utilisant plusieurs colonnes varchar de 8000 caractères (maxi
> autorisé), je ne peux pas stocker le texte : le driver ODBC me répond
qu'il
> ne peut créer une ligne d'une longueur supérieure à 8064 caractères,
> pourtant SQL Server m'a laissé créer 3 colonnes de type varchar de 8000
> caractères chacune...
>
>
> Je voulais savoir s'il n'y a pas moyen de contourner les problèmes
décrits
> ci-dessus.
>
>
> Merci
>
> --
> Daniel CORREIA
>
>




Avatar
Patrice
Un champ TEXT peut faire je crois jusqu'à 2 Go d'où utilisation de fonctions
particulières pour le manipuler (cf READTEXT, UPDATETEXT dans la doc SQL
Server).

Pour SQL Server, ce n'est qu'un avertissement qui est peut-être traité comme
une erreur par le pilote ODBC. A priori la table est utilisable mais la mise
à jour échouera si la taille totale des données mises à jour dépasse cette
limite.


"Daniel Corréia" a écrit dans le message de
news:
Bonjour,


J'ai besoin de stocker et manipuler un champ texte de longueur assez
importante (20.000 caractères)...


1- En utilisant une colonne de type TEXT, je ne peux pas la manipuler
ensuite (impossible d'utiliser par exemple la fonction REPLACE, ou de


typer
une variable locale de type text dans une procédure stockée...)


2- En utilisant plusieurs colonnes varchar de 8000 caractères (maxi
autorisé), je ne peux pas stocker le texte : le driver ODBC me répond


qu'il
ne peut créer une ligne d'une longueur supérieure à 8064 caractères,
pourtant SQL Server m'a laissé créer 3 colonnes de type varchar de 8000
caractères chacune...


Je voulais savoir s'il n'y a pas moyen de contourner les problèmes


décrits
ci-dessus.


Merci

--
Daniel CORREIA