2017-11-07 1 views
0

Ich möchte die Funktion "jsonb_extract_path_text" verwenden, aber es gibt kein Ergebnis. Ich begann mit Hibernate und CriteriaBuilder, aber schließlich vereinfachte ich meine Situation.Postgres, Funktion "jsonb_extract_path_text" gibt kein Ergebnis

Jetzt habe ich mehrere Zeilen in pgAdmin Abfragetool (auch in der PSQL-Konsole getestet) und Beispiele aus der PostgreSQL-Dokumentation.

erste Anweisung mit dem Betreiber funktioniert:

SELECT '{"a": {"b":{"c": "foo"}}}'::jsonb#>>'{a,b}'; 

und es gibt mir

{"c": "foo"} 

Wenn ich versuche, die entsprechende Funktion zu verwenden und beiden Operanden als einen Parameter übergeben:

SELECT jsonb_extract_path_text('{"a": {"b":{"c": "foo"}}}'::jsonb , '{a,b}'); 

es gibt mir NULL.

Ich habe auch versucht Pfad mit dem Array-Konstruktor zu definieren:

SELECT jsonb_extract_path_text('{"a": {"b":{"c": "foo"}}}'::jsonb , ARRAY['a','b']); 

und es gibt mir eine Fehlermeldung:

ERROR: function jsonb_extract_path_text(jsonb, text[]) does not exist 
Hint: No function matches the given name and argument types. You might need to add explicit type casts. 

Was mit diesen Aussagen ist falsch? Meine Postgres-Version ist 9.6.

Antwort

0
SELECT jsonb_extract_path_text('{"a": {"b":{"c": "foo"}}}'::jsonb , 'a','b'); 
Verwandte Themen