2017-09-08 2 views
0

Ich habe einige Daten über die Grafik api in CosmosDB eingefügt. Aufgrund einiger Zeichenbeschränkungen in der graph API entkomme ich Sonderzeichen .... so wird im json-Dokument meine 'slash/test' Zeichenkette als 'slash% 2Ftest' gespeichert. Was merkwürdig ist, ist, dass wenn ich eine SQL-Abfrage verwenden, um die Daten zu suchen, es unter bestimmten Umständen nicht zurückgegeben wird.
ich einige Tests haben: ENTHÄLT (LOWER (Name._value), "slash% 2" liefert die erwarteten Ergebnisse jedoch ENTHÄLT (LOWER (Name._value), "slash% 2F") gibt nichtsFehler in CosmosDB Enthält Funktion?

. Diese

fühlt sich an wie ein Bug zu mir, aber ich möchte überprüfen.

Vielen Dank für Ihre Hilfe!

Antwort

0

der Grund hier ist der Wert ‚Slash% 2Ftest‘ ist wörtlich eingefügt wird. zum Beispiel Betrachten Sie diese Abfrage:

SELECT 'slash% 2Ftest'

{ "$ 1": "% 2Ftest slash" }

Um dies zu erreichen, können Sie die Unicode-Escape-Sequenz \ uxxxx verwenden möchten. Etwas wie folgt aus:

SELECT 'slash \ u002Ftest'

{ "$ 1": "slash/test" ]

+0

Ich bin eine wörtliche Suche auf der Zeichenkette zu tun, die in die eingefügt wurde Dokument. Ich kann die Unicode-Escape-Sequenz versuchen ... aber das fühlt sich immer noch wie ein Fehler an. –

+0

Es ist eigentlich kein Fehler, weil Sie mit dem Wert in Kleinbuchstaben vergleichen. Wenn Sie Ihre Abfrage in CONTAINS (LOWER (Name._value), "Schrägstrich% 2f") ändern, sollte es funktionieren (% 2F ->% 2f). –

+0

Oh, ich verstehe! Danke für Ihre Hilfe! –