powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / MSSQL 2016 + Base64
8 сообщений из 8, страница 1 из 1
MSSQL 2016 + Base64
    #39852073
Игорь_UUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Существуют ли стандартные функции в mssql 2016: "EncodeBase64" и "DecodeBase64"?
...
Рейтинг: 0 / 0
MSSQL 2016 + Base64
    #39852084
Minamoto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь_UUS, стандартных вроде до сих пор нет, но есть лайфхак:

https://olontsev.ru/2013/06/convert-to-base64-and-back/
...
Рейтинг: 0 / 0
MSSQL 2016 + Base64
    #39852088
Посетитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
SELECT a.a.value('.','varchar(max)'),cast(a.a.value('.','varbinary(max)') as varchar(max))
  FROM (SELECT CAST('Карл у Клары украл кораллы'as image) 
        FOR XML PATH(''), BINARY BASE64,TYPE
        )a(a); 
...
Рейтинг: 0 / 0
MSSQL 2016 + Base64
    #39852123
Игорь_UUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MinamotoИгорь_UUS, стандартных вроде до сих пор нет, но есть лайфхак:

https://olontsev.ru/2013/06/convert-to-base64-and-back/

Попробовал... работает как то криво(((

Из примера

Код: sql
1.
2.
3.
4.
declare @value varbinary(max);
set @value = cast(N'My Test String' as varbinary(max));
select cast(N'' as xml).value('xs:base64Binary(sql:variable("@value"))', 'varchar(max)') as [encoded_value];
go



Получаю: "TQB5ACAAVABlAHMAdAAgAFMAdAByAGkAbgBnAA=="

Далее проверяю, захожу на http://base64.ru
Пробую закодировать то же самое, получаю "TXkgVGVzdCBTdHJpbmc="

Подскажите в чём разница?
...
Рейтинг: 0 / 0
MSSQL 2016 + Base64
    #39852127
Игорь_UUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посетитель
Код: sql
1.
2.
3.
4.
SELECT a.a.value('.','varchar(max)'),cast(a.a.value('.','varbinary(max)') as varchar(max))
  FROM (SELECT CAST('Карл у Клары украл кораллы'as image) 
        FOR XML PATH(''), BINARY BASE64,TYPE
        )a(a); 



а вот это работает правильно!
...
Рейтинг: 0 / 0
MSSQL 2016 + Base64
    #39852128
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь_UUSMinamotoИгорь_UUS, стандартных вроде до сих пор нет, но есть лайфхак:

https://olontsev.ru/2013/06/convert-to-base64-and-back/

Попробовал... работает как то криво(((

Из примера

Код: sql
1.
2.
3.
4.
declare @value varbinary(max);
set @value = cast(N'My Test String' as varbinary(max));
select cast(N'' as xml).value('xs:base64Binary(sql:variable("@value"))', 'varchar(max)') as [encoded_value];
go




Получаю: "TQB5ACAAVABlAHMAdAAgAFMAdAByAGkAbgBnAA=="

Далее проверяю, захожу на http://base64.ru
Пробую закодировать то же самое, получаю "TXkgVGVzdCBTdHJpbmc="

Подскажите в чём разница?



Скорее всего проблема в разных представления unicode строки в binary. В SQL это UTF-16, а в base64.ru, скорее всего, UTF-8.
...
Рейтинг: 0 / 0
MSSQL 2016 + Base64
    #39852130
Игорь_UUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос закрыт))) с "перепуга" использовал NVARCHAR))
...
Рейтинг: 0 / 0
MSSQL 2016 + Base64
    #39852134
Minamoto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь_UUS, а еще есть такой способ:

Код: sql
1.
2.
3.
SELECT CAST('My Test String' as varbinary(max)) FOR XML PATH(''), BINARY base64

SELECT CAST( CAST( 'TXkgVGVzdCBTdHJpbmc=' as XML ).value('.','varbinary(max)') AS varchar(max) )
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / MSSQL 2016 + Base64
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]