{
"count": "1",
"operation": [ {
"operation_id": "202003020301301",
...
"end_date": null
}],
"flows_requested": [ {
"rownum": 1,
...
"end_date": null,
"missing_items": [ {
"column_name": "COL_01",
"column_value": "12"
}]
}]
}
Il seguente json è composto da tre pezzi separati:
- Il primo record rappresenta una count
- Il secondo pezzo rappresenta un array contenente l'estrazione di una serie di informazioni presenti in una determinata tabella.
- Nel terso pezzo abbiamo un cursore innestato con un altro cursore.
Per ottenere una strutura di questo tipo occorre creare una procedura pl-sql contenente tre cursori, di seguito l'esempio del pl-sql che genera il tracciato json sopra indicato.
PROCEDURE get (
[parametri di input...]
OUT_OPERATION OUT SYS_REFCURSOR,
OUT_COUNT OUT NUMBER,
OUT_FLOWS_REQUESTED OUT SYS_REFCURSOR
)
AS
[dichiarazioni di variabili...]
BEGIN
------------------------------
--- count
------------------------------
SELECT
COUNT(1) INTO OUT_COUNT
FROM( [tabella o sottoquery su cui effettuare la count...] );
[gestione dello stato nel caso ritorni 0 record...]
------------------------------
--- sys_refcursor
------------------------------
OPEN OUT_OPERATION FOR
SELECT DISTINCT
req.OPERATION_ID operation_id
[...]
, req.odi_end_date
FROM [...] ;
------------------------------
--- sys_refcursor
------------------------------
OPEN OUT_FLOWS_REQUESTED FOR
SELECT rownum,
flow_id,
[...],
end_date,
cursor (select miss.column_name, miss.column_value
from [...]
where [...]) missing_items
FROM [...]
WHERE [...];
END get;
A questo punto occorre creare l'Handler di ORDS che richiama questa procedura pl-sql ed otterremo il tracciato indicato sopra.
Nessun commento:
Posta un commento