2009-03-03 8 views
0

J'écris une fonction SQL qui prendra une décimale et retournera la représentation base32 de cette décimale.Conversion SQL Base32

Mon problème est avec la conversion décimale en ASCII.

Je suis autorisé à exécuter la requête suivante et retourner un caractère ascii

« SELECT CHAR (65) » qui renvoie « A »

Cependant, dans ma fonction quand je suis en train de construire ma chaîne de sortie de lettres, j'ai du mal à lancer un bigint dans un char, puis concaténer ce char à la fin d'un autre char (ce qui serait ma sortie).

ligne Exemple de code: "SET @OutputChar = @OutputChar + CAST ((@output + 55) AS CHAR (255))"

Quelle est la bonne façon de jeter un bigint char puis concaténer ce char à un autre?

Merci

Répondre

0

Comment vous @OutputChar déclarer?

Si vous avez:

DECLARE @OutputChar CHAR(255) 

alors chaque fois que vous concantenate, il tronquera à 255. CHAR inclut les espaces à la fin, peut-être vous dire utiliser VARCHAR au lieu de CHAR?

+0

Vous avez souligné l'erreur dans ma logique. J'allouais 255 en taille pour le char, qui quand je vais concaténer ce serait 255 + 255, et coupez l'omble concaténé. Je l'ai changé de CHAR (255) en CHAR et cela a permis au char de ne pas être tronqué. Merci pour l'aide! – Zombie8

0

Essayez ceci:

SET @OutputChar = @OutputChar + CONVERT(varchar(255),@Output + 55)