мне нужна помощь с апексом oracle. Это задание не характерно для меня, поэтому я прошу помощи. У меня есть точка отдыха (получить). В результате у меня есть ответ:
{
"DT_СREATE": "2020-02-05T10:38:11Z",
"DT_UPDATE": "2020-02-05T10:38:11Z",
"ID": 12015,
"sensors": [
{
"name": "SENSOR1",
"temp": "11.91"
},
{
"name": "SENSOR2",
"temp": "9.23"
}
]
}
У меня также есть таблица TEMPR_SILO. В котором я хочу написать этот ответ!
CREATE TABLE "TEMPR_SILO"
( "ID" NUMBER,
"NAME" VARCHAR2(500),
"TEMP" VARCHAR2(500),
"ID_TRANS" NUMBER,
CONSTRAINT "TEMPR_SILO_PK" PRIMARY KEY ("ID")
USING INDEX ENABLE
)
/
но все это должно быть результатом динамического действия c после нажатия кнопки на травке. То есть, когда кнопка нажата, я должен записать данные из GET. Я написал ПОСТ для этого. вот и он.
BEGIN
v_clob := iot_general.blob_to_clob(p_blob);
apex_json.parse(tv, v_clob);
v_id := apex_json.get_varchar2(p_path => 'id', p_values => tv);
sCount := APEX_JSON.get_count(p_path => 'sensors' , p_values => tv);
IF sCount > 0 THEN
FOR i in 1 .. sCount LOOP
q_temp := apex_json.get_varchar2(p_path => 'sensors['|| i ||'].temp', p_values => tv);
q_name := apex_json.get_varchar2(p_path => 'sensors['|| i ||'].name', p_values => tv);
INSERT INTO TEMPR_SILO ( NAME, TEMP,ID_TRANS)
VALUES ( q_name , q_temp ,v_id);
commit;
END LOOP;
END IF;
Но я не знаю, как использовать это в моей задаче! Буду признателен за пример или помощь в этом вопросе!