Zunächst einmal habe ich in Oracle eine Prozedur, die einen Clob zurückgibt. Dieser Clob enthält eine JSON-Zeichenfolge, die ich mit pljson von einem SQL-Select erstellt habe. So:Postgres: Return json cob
procedure xyz
(
o_json out clob
)
is
m_json_list json_list := json_list;
m_json_temp json;
begin
for cs in (select id, name, birthday from profile)loop
m_json_temp := json;
m_json_temp.put('id', cs.id);
m_json_temp.put('name', cs.name);
m_json_temp.put('birthday', cs.birthday);
m_json_list.add(m_json_temp);
end loop;
o_json := convertToClob(m_json_list);
end xyz;
Jetzt möchte ich das gleiche Ergebnis mit einer Postgres-Datenbank achive. Das einzige, was ich gefunden habe, ist, dass ich eine Tabelle mit einer Hülle habe, die den Typ 'JSON' hat und das ganze JSON enthält. Das ist nicht was ich suche.
Kann mir jemand ein Beispiel geben, wie man dieses Szenario in Postgresql erreichen kann?
EDIT: Hier ist ein Beispiel für eine innere Verknüpfung:
procedure xyz
(
o_json out clob
)
is
m_json_list json_list := json_list;
m_json_temp json;
begin
for cs in (select ppf.id, ppf.name, ppf.birthday, ott.info from profile ppf inner join other_table ott on ott.ott_id = ppf.id)loop
m_json_temp := json;
m_json_temp.put('id', cs.id);
m_json_temp.put('name', cs.name);
m_json_temp.put('birthday', cs.birthday);
m_json_temp.put('info', cs.info);
m_json_list.add(m_json_temp);
end loop;
o_json := convertToClob(m_json_list);
end xyz;
Warum nicht, was ist der Unterschied? Postgres behandelt "lange" Felder (json in Ihrem Fall), ähnlich wie Oracle Clobs behandelt. Also, was genau willst du? –
Ich möchte Joins mit anderen Tabellen erstellen. – Lee
Und wie machst du JSON Joins bei Oracle? Können Sie ein Beispiel geben? –