Записать данные из запроса на получение в таблицу в формате apex oracle - PullRequest
0 голосов
/ 10 февраля 2020

мне нужна помощь с апексом 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; 
    

Но я не знаю, как использовать это в моей задаче! Буду признателен за пример или помощь в этом вопросе!

1 Ответ

0 голосов
/ 10 февраля 2020

Если вы проверили, что ваш последний фрагмент работает, это просто вопрос создания действия Dynami c для кнопки с истинным действием кода PL / SQL и его помещения туда. Если вы хотите следовать рекомендациям, этот код должен быть в процедуре на БД, и это то, что вы бы назвали в DA.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...