Вероятно, это дубликат, но я не смог довольно долго выяснить, как это сделать.
Я просто пытаюсь выполнить обход двоичного значения. Я выбираю его, затем вставляю в другой запрос SQL.
Т.е.
- У меня есть таблица со столбцами
id, data
- Я выполняю этот запрос в Azure Data Studio с расширением postgres:
select id, data from mytable
- Окно вывода показывает это
id data
58 b'\xaa\xb6\x87|-x\xf6\xd1\x80\xec\xd2\xed\x91\x1ebd\x924g\xcd\xaeVZ\x01\xf2\xa0\xb3\xd8\x16\xe1fC'
Теперь я пытаюсь сделать второй запрос, где я считать вещи, соответствующие этому.
select count(*) from mytable where data = b'\xaa\xb6\x87|-x\xf6\xd1\x80\xec\xd2\xed\x91\x1ebd\x924g\xcd\xaeVZ\x01\xf2\xa0\xb3\xd8\x16\xe1fC'
И я получаю сообщение об ошибке "\" - недопустимый двоичный файл di git
Большинство документов и другие вещи, которые я обнаружил, предлагают синтаксис E'...'::bytea
, поэтому я делаю это:
select count(*) from mytable where data = E'\xaa\xb6\x87|-x\xf6\xd1\x80\xec\xd2\xed\x91\x1ebd\x924g\xcd\xaeVZ\x01\xf2\xa0\xb3\xd8\x16\xe1fC'::bytea
И я получаю сообщение об ошибке неверная последовательность байтов для кодировки "UTF8": 0xaa
Я попробовал функцию decode
, поскольку другие предположили, что:
select count(*) from mytable where data = decode('\xaa\xb6\x87|-x\xf6\xd1\x80\xec\xd2\xed\x91\x1ebd\x924g\xcd\xaeVZ\x01\xf2\xa0\xb3\xd8\x16\xe1fC', 'escape')
И это не удается из-за ошибки неверный синтаксис ввода для типа bytea
Почему выходной формат для двоичных данных не является допустимым форматом ввода? Надеюсь, это не просто странная Azure Data Studio: - (