2010-12-05 50 views
6

J'utilise une base de données SQL 2000.Besoin de convertir le champ de texte en Varchar temporairement afin que je puisse passer à une procédure stockée

Je travaille avec une base de données dans laquelle je ne peux pas changer les types sur les tables, ou les procédures stockées. L'une des procédures stockées que j'ai besoin d'appeler attend un paramètre de 'texte'. Je peux accéder au champ de texte, mais je suis incapable de savoir qui stocker cela dans une variable ou de toute autre manière de le transmettre dans la procédure stockée? Si je tente de créer une variable de texte, SQL ne me le permet pas - si je le convertis en varchar, je n'obtiens que le premier caractère du champ de texte.

Toutes les astuces pour contourner ce très apprécié! Je vous remercie!

Répondre

16

Déclarez la variable de type varchar(8000)

declare @v varchar(8000) 
SET @v = (SELECT CAST(textcol as varchar(8000)) FROM yourtable WHERE ....) 

De toute évidence, il pourrait encore être tronquée mais pas à 1 caractère.

+0

Bonjour, J'ai mis à jour ma question pour montrer que j'utilise SQL 2000. – user53885

+1

Vous devrez utiliser 'varchar (8000)' ou 'nvarchar (4000)' alors. Évidemment, il pourrait être tronqué mais pas à 1 caractère. –

+0

La plupart de ces champs de texte contiennent beaucoup plus de 8000 - ceci est certainement d'une aide excellente cependant. – user53885