Oracle ords: Как создать метод put/post с коллекцией

Я создал метод публикации для получения данных о геолокации клиентов: метод публикации

Когда я вызываю метод post с помощью JSON:

{"customer": 1, "latitude":-21.13179, "longitude":-47.736782 }

Мой скрипт PL/SQL работает.

Теперь я хотел бы отправить группу записей, но я не знаю, как это сделать. Я создал метод PUT для получения коллекций геолокации и создал скрипт для анализа параметра: метод Put

Когда я вызываю метод put с помощью JSON:

{  
   "items":[  
      {  
         "customer":1,
         "latitude":-21.13179,
         "longitude":-47.736782
      },
      {  
         "customer":1,
         "latitude":-21.13179,
         "longitude":-47.736782
      }
   ]
}
PL/SQL code:

declare
l_values apex_json.t_values;
begin
apex_json.parse (
           p_values => l_values,
           p_source => :items );
end;

Я получил сообщение:

400 - Bad Request - Expected a value but got: START_ARRAY.

Что я делаю не так? Я хочу создать метод post/put для получения коллекции. Спасибо за вашу помощь.

1 ответ

В OracleBase есть пример, который показывает способ использования 'JSON_Table' в 12c и 'JSON_Obect_t' pl/sql в 12Cr2. Данные JSON передаются в виде большого двоичного объекта в хранимый процесс, который затем анализирует и обновляет / что угодно. Я еще не тестировал его, но это похоже на хороший подход к работе с коллекциями, которые, очевидно, не могут быть обработаны ORDS "из коробки". Я экспериментировал с использованием метода массовой загрузки для загрузки временной таблицы, но это было только для csv и немного утомительно. Вот сообщение в блоге Джеффа Смита об этом

Я еще не проверял это, я перестроил свой подход для отправки каждой записи по отдельности, но в конечном итоге мне нужно будет использовать это. Я буду обновлять этот ответ, когда я делаю с примерами.

Я столкнулся с той же проблемой, и причина будет в том, что опубликовано в приведенном ниже URL.

https://community.oracle.com/thread/2182167?start=0&tstart=0

"В APEX Listener 1.1 PL/SQL Hander автоматически преобразует свойства JSON в неявные параметры. Обратите внимание, что это будет работать только для простых объектов JSON, массивы или вложенные объекты не поддерживаются".

По сути - нельзя передавать коллекции / массивы. Я не уверен, изменилось ли это сейчас или есть ли планы изменить это в дорожной карте.

Другие вопросы по тегам