Пост в верхушке oracle - PullRequest
       7

Пост в верхушке oracle

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

Я хочу записать данные записи в таблицу, но данные находятся в массиве. Я написал код, но по какой-то причине он не работает, он может помочь найти ошибку. Он не выдает ошибок, он пишет пустые столбцы!

    sCount := APEX_JSON.get_count(p_path => 'quantitative_index' , p_values => tv); 
    IF sCount > 0 THEN 
      FOR i in 1 .. sCount LOOP 
        q_id   := apex_json.get_varchar2(p_path => 'quantitative_indexs['|| i ||'].id', p_values => tv); 
        q_name := apex_json.get_varchar2(p_path => 'quantitative_indexs['|| i ||'].name', p_values => tv); 
        q_guid := apex_json.get_varchar2(p_path => 'quantitative_indexs['|| i ||'].guid', p_values => tv); 
        select count(*) into v_det_vol from DETAILS_VOLUME where ID	 = q_id and NAME = q_name; 
        if v_det_vol = 0 then 
          INSERT INTO DETAILS_VOLUME (ID, NAME, guid)  
            VALUES (q_id, q_name ,q_guid); 
          commit;           
        end if; 
      END LOOP; 
    END IF; 
вот json

{

  "quantitative_index": [
    {
      "id": 12121,
      "name": "Менеджер",
		  "guid": "100"
    },
		{
      "id": 12122,
      "name": "Менеджер1",
		  "guid": "100"
    }
  ]
}

sCount := APEX_JSON.get_count(p_path => 'quantitative_index' , p_values => tv); 
    IF sCount > 0 THEN 
      FOR i in 1 .. sCount LOOP 
        q_id   := apex_json.get_varchar2(p_path => 'quantitative_indexs['|| i ||'].id', p_values => tv); 
        q_name := apex_json.get_varchar2(p_path => 'quantitative_indexs['|| i ||'].name', p_values => tv); 
        q_guid := apex_json.get_varchar2(p_path => 'quantitative_indexs['|| i ||'].guid', p_values => tv); 
        select count(*) into v_det_vol from DETAILS_VOLUME where ID	 = q_id and NAME = q_name; 
        if v_det_vol = 0 then 
          INSERT INTO DETAILS_VOLUME (ID, NAME, guid)  
            VALUES (1, '1' ,'1'); 
          commit;           
        end if; 
      END LOOP; 
    END IF;

И если да, то записывает!

1 Ответ

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

Ваш код ссылается на quantitative_indexs, но имя свойства quantitative_index Нет 's' в конце.

Кроме того, не фиксируйте в al oop, делайте это вне l oop или просто позвольте APEX сделать это за вас.

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