PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Работа с Unicode последователности в postgresql

\u0000 е единствената Unicode кодова точка, която не е валидна в низ. Не виждам друг начин освен да дезинфекцирам низа.

От json е просто низ в определен формат, можете да използвате стандартните функции за низове, без да се притеснявате за JSON структурата. Едноредов дезинфектант за премахване на кодовата точка би бил:

SELECT (regexp_replace(the_string::text, '\\u0000', '', 'g'))::json;

Но можете също така да вмъкнете всеки символ по ваш вкус, което би било полезно, ако нулевата кодова точка се използва като някаква форма на разделител.

Обърнете внимание и на фината разлика между това, което се съхранява в базата данни и как се представя на потребителя. Можете да съхраните кодовата точка в JSON низ, но трябва предварително да я обработите до някакъв друг знак, преди да обработите стойността като json тип данни.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres връзката е бавна от PHP

  2. Някой имал ли е успех с използването на конкретен локал за база данни на PostgreSQL, така че сравнението на текст да не прави разлика между главни и малки букви?

  3. Как мога да променя кодирането на база данни за PostgreSQL база данни с помощта на sql или phpPgAdmin?

  4. Как да нулирате последователността в postgres и да попълните колоната за идентификатор с нови данни?

  5. Извършване на ляво съединение със стари съединения