Еще одна идея состоит в том, чтобы сначала преобразовать вашу строку CSV в JSON с последующим извлечением JSON в следующих строках:
... '["' || replace( user_action, '.', '", "' ) || '"]' AS replaced
... JSON_EXTRACT_ARRAY_ELEMENT_TEXT(replaced, numbers.i) AS parsed_action
Где «числа» - таблица из первого ответа. Преимуществом этого подхода является возможность использования встроенных функций JSON.
Если вы хотите, чтобы сервер БД Oracle возвращал результат в виде JSON, вы можете выполнить запрос, как показано ниже -
SELECT JSON_OBJECT ('1' VALUE col1, '2' VALUE col2, '3' VALUE col3) FROM table
Вы можете использовать трюк форматирования JSON в SQL Developer.
Полный сценарий:
CREATE TABLE JSON_SO (
"1" INTEGER,
"2" INTEGER,
"3" INTEGER,
"4" INTEGER,
"5" INTEGER,
"6" INTEGER
);
INSERT INTO JSON_SO VALUES (
40,
20,
22,
10,
0,
0
);
select /*json*/ * from json_so;
И вывод при выполнении с F5 (Выполнить как сценарий):
[ 111]Обратите внимание, что вывод JSON происходит на стороне клиента через SQL Developer (это также работает в SQLcl), и я отформатировал вывод JSON для отображения здесь, используя https://jsonformatter.curiousconcept.com/ ] в JSON для вас.