
Recibir JSON en procedimiento almacenado
Publicado por Eduardo (5 intervenciones) el 14/04/2023 00:12:03
Saludos colegas,
Tengo el siguiente arreglo en formato JSON:
Necesito hacer un procedimiento almacenado que reciba este json y con los datos inserte registros en las tablas 'proformas_cab' y 'proformas_det':
Lo que no encuentro como hacer es iterar la sección "items" para poder insertar dichos datos en la tabla 'proformas_det'. Agradeceré cualquier ayuda.
Cordiales saludos.
Tengo el siguiente arreglo en formato JSON:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{
"vc_stamp": "00120230403194906",
"vc_local_id": 2,
"vc_doc_fech": "20230403194906",
"vc_doc_tipo": 2,
"vc_crd_dias": 0,
"vc_crd_venc": "20230403 ",
"vc_pgo_efec": 20.00,
"vc_pgo_visa": 0.00,
"vc_pgo_mast": 0.00,
"vc_pgo_amer": 0.00,
"vc_pgo_vuel": 3.50,
"vc_clie_id": 0,
"vc_user_id": "EF ",
"items":
[
{
"vd_arti_id": 292,
"vd_unids": 10,
"vd_prec_ttl": 3.00
},
{
"vd_arti_id": 757,
"vd_unids": 10,
"vd_prec_ttl": 13.50
}
]
}
Necesito hacer un procedimiento almacenado que reciba este json y con los datos inserte registros en las tablas 'proformas_cab' y 'proformas_det':
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CREATE PROCEDURE sp_insert_proforma( IN data JSON)
BEGIN
DECLARE cStamp CHAR(17);
DECLARE nLocal INT ;
DECLARE cFecha CHAR(15) ;
SET cStamp = JSON_UNQUOTE( JSON_EXTRACT( data , "$.vc_stamp" ) ) ;
SET nLocal = JSON_UNQUOTE( JSON_EXTRACT( data , "$.vc_local_id" ) ) ;
SET cFecha = JSON_UNQUOTE( JSON_EXTRACT( data , "$.vc_doc_fech" ) ) ;
...
INSERT INTO proformas_cab (vc_stamp,vc_local_id,vc_doc_fech)
VALUES ( cStamp , nLocal , cFecha ) ;
END;
Lo que no encuentro como hacer es iterar la sección "items" para poder insertar dichos datos en la tabla 'proformas_det'. Agradeceré cualquier ayuda.
Cordiales saludos.
Valora esta pregunta


0