sql >> Database teknologi >  >> RDS >> PostgreSQL

Django. PostgreSQL. regexp_split_to_table virker ikke

Omvendt skråstreg behandles som meta-karakter af Django og fortolkes inden for dobbelte anførselstegn. Så ét lag E'\\s+') bliver strippet, før strengen ankommer til PostgreSQL-serveren, som vil se E'\s+') . Escape-strengen vil resultere i 's+' hvilket igen vil lave regexp_split_to_table() opdel dine strenge ved et vilkårligt antal s i stedet for ikke-udskrivende plads, som tegnklassen stenografi \s står for i regulære udtryk.

Fordoble dine omvendte skråstreger i strengen for at få, hvad du havde til hensigt:E'\\\\s+') :

"SELECT regexp_split_to_table(field_name, E'\\\\s+') FROM mytable LIMIT 20"

Som et alternativ, for at undgå problemer med den særlige betydning af omvendt skråstreg \ , kan du bruge [[:space:]] for at angive den samme karakterklasse:

"SELECT regexp_split_to_table(field_name, '[[:space:]]+') FROM mytable LIMIT 20"

Detaljer i kapitlet " Pattern Matching" i manualen .



  1. Hvordan genererer jeg i SQL Server et auto-increment primærnøgle-id, der består af år , en speciel char og et sekventielt serienummer?

  2. Java-type for dato/klokkeslæt, når du bruger Oracle Date med Hibernate

  3. Deltag på en CTE i SQLAlchemy

  4. libclntsh.so.11.1:kan ikke åbne en delt objektfil.