2009-03-03 2 views
0

Я пишу SQL-функцию, которая будет принимать десятичное значение и возвращает представление base32 этого десятичного знака.SQL Base32 Conversion

Моя проблема заключается в преобразовании десятичного числа в ascii.

Я позволил выполнить следующий запрос и возвращает ASCII символ

«SELECT CHAR (65)», который возвращает «A»

Однако в моей функции, когда я пытаюсь построить свою строку вывода из букв, у меня возникают проблемы с добавлением bigint в char, а затем конкатенация этого символа до конца другого символа (который будет моим выходом).

Пример строки кода: "SET @OutputChar = @OutputChar + CAST ((@output + 55) AS CHAR (255))"

Что такое правильный способ бросить в BIGINT на символ, а затем сцепить этот символ другому?

Благодаря

ответ

0

Как вы объявляя @OutputChar?

Если у вас есть:

DECLARE @OutputChar CHAR(255) 

затем каждый раз, когда вы concantenate, он будет обрезать его до 255. CHAR включает в себя пробелы в конце концов, может быть, вы имеете в виду использовать VARCHAR вместо CHAR?

+0

Вы указали ошибку в моей логике. Я выделил 255 для char, который, когда я перейду на конкатенацию, будет 255 + 255, и обрезает конкатенированный символ. Я изменил его с CHAR (255) на CHAR, и это позволило char не быть усеченным. Спасибо вам за помощь! – Zombie8

0

Попробуйте это:

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