Vertica символ UTF-8

У меня есть таблица со столбцом, тип которого - varchar (32), его значение - 'Movies & TV'. Эти данные загружаются командой Копировать, когда я запрашиваю эту таблицу, например

select * from activity where name='Movies & TV' (typed this value)

он не вернет никаких записей, это в основном из-за символа &, с этим персонажем что-то происходит.

Когда я попробовал

Select ISUTF8(name) from activity it returns true, что означает, что данные фактически хранятся в формате UTF-8. Select length(name) and length('Movies & TV') тоже такие же. Однако, когда я вставляю эти значения в редактор vi и вижу лишний пробел в строке БД. Кроме того, имя поля в таблице действий также может содержать символы китайского языка, которые теперь корректно хранятся в БД.

Есть идеи, что здесь происходит? Должен ли я указывать явный UTF-8 при загрузке данных?

Может быть, «виноват» не «&». Возможно, у вас есть какой-то другой (невидимый, но все еще закодированный в UTF8) символ в вашей базе данных. Что-то вроде неразрывного пространства, например ...

mauro 07.08.2018 04:31
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
1
900
1

Ответы 1

Если вы делаете это из SQLPLUS, используйте

SET DEFINE OFF  

чтобы остановить его наступление и как особый случай.

Альтернативное решение, используйте конкатенацию и функцию chr:

SELECT * FROM activity WHERE name= 'Movies ' || chr(38) || ' TV';

Решение от: Как вставить строку, содержащую "&"

Какое отношение SQLPLUS имеет к Vertica?

mauro 07.08.2018 04:25

Другие вопросы по теме