2010-03-02 7 views
1

J'utilise une base de données Postgresql. Dans ma base de données il y a une table mumbaipropertydetails dans laquelle une zone de colonne a des données unicode.recherche de chaîne unicode

Lorsque j'exécute la requête:

select mumbaipropertydetails."zone" 
from mumbaipropertydetails; 

lui donne une sortie comme ceci:

"\u092A\u093F\u0902\u092A\u0930\u0940 \u0935\u093E\u0918\u0947\u0930\u0947" 
"\u092A\u093F\u0902\u092A\u0930\u0940 \u0935\u093E\u0918\u0947\u0930\u0947" 
"\u092A\u093F\u0902\u092A\u0930\u0940 \u0935\u093E\u0918\u0947\u0930\u0947" 
"\u092A\u093F\u0902\u092A\u0930\u0940 \u0935\u093E\u0918\u0947\u0930\u0947" 
"\u092A\u093F\u0902\u092A\u0930\u0940 \u0935\u093E\u0918\u0947\u0930\u0947" 
"\u092A\u093F\u0902\u092A\u0930\u0940 \u0935\u093E\u0918\u0947\u0930\u0947" 

Quand je suis en train d'exécuter une autre requête comme:

select mumbaipropertydetails.taxno 
from mumbaipropertydetails 
where mumbaipropertydetails."zone"= "\u092A\u093F\u0902\u092A\u0930\u0940 
\u0935\u093E\u0918\u0947\u0930\u0947"; 

lui donne une erreur comme celle-ci

NOTICE: identifier 
"\u092A\u093F\u0902\u092A\u0930\u0940\u0935\u093E\u0918\u0947\u0930\u0947" 
will be truncated to 
"\u092A\u093F\u0902\u092A\u0930\u0940\u0935\u093E\u0918\u0947\u" 

ERROR: column "\u092A\u093F\u0902\u092A\u0930\u0940 
\u0935\u093E\u0918\u0947\u" does not exist 
LINE 1: ...opertydetails where mumbaipropertydetails."zone"= "\u092A\u0... 
                 ^
********** Error ********** 

ERROR: column "\u092A\u093F\u0902\u092A\u0930\u0940 
\u0935\u093E\u0918\u0947\u" does not exist 
SQL state: 42703 
Character: 99 

Répondre

3

Je pense que vous avez confondu les guillemets simples et doubles dans votre requête.

Vous devriez interroger comme ceci:

select mumbaipropertydetails.taxno 
    from mumbaipropertydetails 
    where 
    mumbaipropertydetails.zone 
    = 
    E'\u092A\u093F\u0902\u092A\u0930\u0940 \u0935\u093E\u0918\u0947\u0930\u0947'; 
  1. Il n'y a pas besoin de citer les noms de colonnes, si elles sont minuscules. Si elles sont cas mixtes ou supérieur, vous devez les citer entre guillemets - "
  2. Les chaînes doivent être cité entre guillemets simples - '
  3. Les chaînes qui utilisent la barre oblique inverse (\) pour échapper, doivent utiliser une lettre E avant d'ouvrir guillemets simples, comme dans l'exemple ci-dessus.