簡體   English   中英

Oracle Ords:如何使用集合創建放置/發布方法

[英]Oracle ords: How to create put/post method with collection

我創建了一個post方法來接收客戶的地理位置數據: Post方法

當我使用JSON調用post方法時:

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

我的PL / SQL腳本有效。

現在,我想發送一組記錄,但是我不知道該怎么做。 我創建了一個PUT方法來接收地理位置的集合,並構造了一個腳本來解析參數: Put方法

當我使用JSON調用put方法時:

{  
   "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方法來接收一個集合。 謝謝你的幫助。

我遇到了同樣的問題,原因是下面的URL中發布了什么。

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

“在APEX Listener 1.1中,PL / SQL Hander將自動將JSON屬性轉換為隱式參數。請注意,這僅適用於簡單的JSON對象,不支持數組或嵌套對象。”

基本上-無法傳遞集合/數組。 我不確定現在是否已更改,或者在路線圖中是否有任何更改此計划的計划。

OracleBase有一個示例,該示例顯示了一種在12c中使用'JSON_Table'和在12Cr2中使用'JSON_Obect_t'pl / sql的方法。 JSON數據作為Blob傳遞到存儲的proc,然后該proc進行解析和更新(無論如何)。 我尚未對其進行測試,但是它似乎是一種處理集合的好方法,顯然,ORDS不能“即開即用”地對其進行處理。 我已經嘗試過使用bulkload方法加載臨時表,但這僅適用於csv,有點繁瑣。 這是Jeff Smiths的博客文章

我還沒有測試過,我重建了單獨發送每個條目的方法,但是最終我需要使用它。 在處理示例時,我將更新此答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM