Запрос товара из таблицы и отправка его в процедуру - PullRequest
1 голос
/ 21 апреля 2020

Примечание Я хочу запросить имя элемента страницы и отправить соответствующее значение элемента в процедуру. Я могу получить название предмета, но не могу получить его значение. Сначала я использую следующий код:

    begin
     for j in (select item_name from UTLITMINF where service_id ='abc' ) loop
                val := val || ':' || j.item_name;   --items name
             END LOOP;
    /* exe := ' begin 

             dynamic_api_call(p_service => :ser,
                     p_par => :v_val,     --items value to need to send
                     o_result_json => :v_l_response_text);
            end; ';
     execute immediate exe 
             using  IN ser,
                     in  val,
                   out l_response_text;*/

     begin
         dynamic_api_call(p_service => 'abc',
                     p_par => val,     --items name from page queried from table and send its value to procedure
                     o_result_json => l_response_text);
    end;


    raise_application_error(-20001,l_response_text);
end;

В параметре val он содержит P11_CUSTOMER. Но ценность этого не прошла через процедуру. Как я могу получить ценность этого? Предложите мне, если мне нужно улучшить мой код.

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

Вы можете использовать функции V (сокращение от значения) и NV (сокращение от цифры c значение) для имен элементов Dynami c. Попробуйте что-то вроде этого (вам нужно настроить на своем конце).

declare

  l_response_text varchar2(255);
  l_ser           varchar2(255) := 'abc';
  l_item_name     varchar2(255);

begin

  select item_name
  into l_item_name
  from UTLITMINF 
  where service_id = l_ser;

  dynamic_api_call(
    p_service     => l_ser,
    p_par         => v(l_item_name),
    o_result_json => l_response_text
  );

end;
0 голосов
/ 21 апреля 2020

Попробуйте Dynami c sql, как показано ниже

   begin
 for j in (select item_name from UTLITMINF where service_id ='abc' ) loop
            val := val || ':' || j.item_name;   --items name
         END LOOP;
 exe := ' begin 

         dynamic_api_call(p_service => :ser,
                 p_par => :v_val,     --items value to need to send
                 o_result_json => :v_l_response_text);
        end ;';
 execute immediate exe 
         using ser,
                 val,
                OUT l_response_text;


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