What if we were dealing with blobs alongside json/ data. How would that impact performance and what would be a way to make that exchange efficient and robust?
Is it possible to make a for loop for adding 700 pairs of lt_parm_names(i loop) and lt_parm_values(i loop) to a apex_web_service.make_rest_request? How many "parms" can I add to it?
I would like to send 700 ids to an API and get the same 700 back paired with another id crucial to my app?
Hi Jon, Just read your article. My preferred approach to this use case is PL/SQL.
To avoid the sequential approach and the need to parse the response twice to test for the next page of data, I use a 2 step approach:
1) call the rest api for a SINGLErecord to get the total record count.
2) build and execute ALL the api calls for individual pages in parallel. Parameterise the maximum concurrency in light of vendor rate limiting.
For my use case, Oracle CX implementations, this routinely achieves a 10X to 20X overall throughput.
100% Oracle and 100% free with Oracle ADB !
Another great article, all very useful techniques to know from a practical point of view and a good lesson in theory too. Clearly explained as always, excellent
Great article! Really enjoyed it. Really impressive performance improvement with the last method.
Speaking about other methods, it could be again any of the current ones, but fetching only the deltas - records updated/inserted after the last sync. I have always used to have a specific package and table to keep the delta information (like last sync date, latest id, etc.). And then my query would only return the needed records which are then transferred using any of the methods you mention. Or directly in bulk using a DBLink if available.
Norman Castelino
Hi,
This blog was really helped me to achieve our requirement; The exact same code is throwing error: Error at line 5/38: ORA-20987: APEX - End-of-central-directory signature not found. This file is not a ZIP file. ORA-06512: at "APEX_240100.WWV_FLOW_ERROR", line 1123 ORA-06512: at "APEX_240100.WWV_FLOW_ERROR", line 1581 ORA-06512: at "APEX_240100.WWV_FLOW_ZIP", line 141 ORA-06512: at "APEX_240100.WWV_FLOW_ZIP", line 212 ORA-06512: at line 13 3.