2017-01-01 10 views
1
SELECT * 
FROM Registration 
WHERE UserPass = CONVERT(VARBINARY(50),'5avag3',1); 

Я пытаюсь сохранить этот пароль в моей базе данных как значение хэш-функции. В настоящее время атрибут UserPass находится в двоичном формате, и я получаю это сообщение об ошибке:Невозможно преобразовать тип данных

Неявное преобразование из типа данных varchar в двоичный файл не допускается. Используйте функцию CONVERT для запуска этого запроса.

Код:

INSERT INTO [dbo].[Registration] ([LoginName], [UserPass], [FirstName],[LastName], [PIC], [DIC]) 
VALUES ('LogPaul', '', 'Logan', 'Paul', '', '690404-10-5827') 

Когда я пытаюсь преобразовать тип данных он говорит, что я не в состоянии преобразовать.

Пожалуйста, помогите я новичок в SQL, заранее спасибо

+0

Какой РСУБД это? Добавьте тег, чтобы указать, используете ли вы 'mysql',' postgresql', 'sql-server',' oracle' или 'db2' - или что-то еще. –

+0

@marc_s Я использую MS SQL-сервер 2016 –

ответ

0

Просто выполнить преобразование в двоичную внутри фактического INSERT заявления:

INSERT INTO [dbo].[Registration] ([LoginName], [UserPass], [FirstName], [LastName], 
            [PIC], [DIC]) 
VALUES 
    ('LogPaul', CONVERT(VARBINARY(50),'5avag3',1), 'Logan', 'Paul', '', 
    '690404-10-5827') 
+0

спасибо за помощь, но я последовал за этим, но я все еще получаю «Ошибка преобразования типа данных varchar в varbinary». –

+0

Каков тип столбца 'DIC'? –

+0

Столбец DIC - это внешний ключ из другой таблицы, называемой Driver, я установил его null –

 Смежные вопросы

  • Нет связанных вопросов^_^