1) Я должен сделать json из запроса выбора оракула, который может следовать за тремя подходами.
SELECT JSON_ARRAY(json_object('id' VALUE employee_id,
'data_clob' VALUE data_clob
)) from tablename;
также я попытался с этим подходом
2) Если вы не можете исправлять/работать с этой версией, есть отличный пакет, написанный Льюисом Каннингемом и Джонасом Крогсбуэлем: PL/JSON * http://pljson.sourceforge.net/
Это отличный пакет (я использовал его в многочисленных установках базы данных).
Приведенные примеры хороши и охватывают большинство сценариев.
declare
ret json;
begin
ret := json_dyn.executeObject('select * from tab');
ret.print;
end;
/
Упоминание В этом ответе тоже, но не работает для такого большого клоба. Возвращает результаты запроса sql как JSON в oracle 12c
3) Другой подход может заключаться в том, что мы можем конкатенировать строку после запроса select.
FOR rec IN (SELECT employee_id, data_clob
FROM tablename) LOOP
IF i <> 1 THEN
v_result := v_result || ',';
END IF;
v_result := v_result || '{"employee_id":' || to_char(rec.employee_id) || ',"data_clob": ' || rec.data_clob || '}';
i := i + 1;
END LOOP;
v_result := v_result || ']}';
3 решить мою проблему, но я не хочу запускать цикл. Есть ли какое-либо решение в oracle, чтобы справиться с этим.
Я проверяю решение, но это не работает без цикла.
url предоставил какое-то решение, я пробовал это, но не работал. Ошибка в этой версии.
ORA-22835: Buffer too small for CLOB to CHAR or BLOB to RAW conversion (actual: 57416, maximum: 4000)
Не могли бы вы рассказать мне, как это можно сделать?