Создание процедуры для вставки / обновления кол-во. Что я делаю неправильно?

Много замечательных советов выше, но не очень многократно используемых и слишком часто заполненных глупостью DOM и другим пухом, который скрывает легкий код.

Вот класс Javascript, который мы создали, который многоразовый и простой в использовании. В настоящее время он имеет только метод GET, но это работает для нас. Добавление POST не должно облагать навыками кого-либо.

var HttpClient = function() {
    this.get = function(aUrl, aCallback) {
        var anHttpRequest = new XMLHttpRequest();
        anHttpRequest.onreadystatechange = function() { 
            if (anHttpRequest.readyState == 4 && anHttpRequest.status == 200)
                aCallback(anHttpRequest.responseText);
        }

        anHttpRequest.open( "GET", aUrl, true );            
        anHttpRequest.send( null );
    }
}

Использование этого файла так же просто, как:

var client = new HttpClient();
client.get('http://some/thing?with=arguments', function(response) {
    // do something with response
});
0
задан Barbaros Özhan 16 January 2019 в 20:54
поделиться

2 ответа

Что-то вроде следующего, где вы на самом деле открываете и извлекаете из курсора. Вам нужно будет присвоить значение v_plt_no для курсора, чтобы получить что-нибудь.

create or replace PROCEDURE update_qty
is
        v_plt_no nvarchar2(20);
        v_qty number;

        cursor q1 is
        select count(slab_no)
        into v_qty
        from prod_result
        where plt_no = v_plt_no;

begin

   OPEN q1;
   FETCH q1 INTO v_qty;
   CLOSE q1;

   if v_qty > 0 then
      update plt_result
         set qty = 'v_qty'
       where plt_no = v_plt_no;
   end if;
end;
0
ответ дан TurtlesAllTheWayDown 16 January 2019 в 20:54
поделиться

Я не уверен, какую версию вы ищете - это та, которая перебирает все PLT_NO в таблице, или та, которая должна принимать PLT_NO в качестве параметра. Вот оба варианта, посмотрите, поможет ли какой-либо из них.

Первый использует курсор курсора FOR; это легче поддерживать, поскольку Oracle выполняет большую часть грязной работы за вас (открытие курсора, выборка, выход из цикла, закрытие курсора).

create or replace procedure update_qty
is
begin
  for cur_r in (select plt_no, count(slab_no) v_qty
                from prod_result
                group by plt_no
               )
  loop
    if cur_r.v_qty > 0 then
       update plt_result r set
         r.qty = cur_r.v_qty
         where r.plt_no = cur_r.plt_no;
    end if;
  end loop;
end;

Второй принимает PLT_NO в качестве параметра:

create or replace procedure update_qty 
  (par_plt_no in prod_result.plt_no%type)
is
  v_qty number;
begin
  select count(p.slab_no)
    into v_qty
    from prod_result p
    where p.plt_no = par_plt_no;

  if v_qty > 0 then
     update plt_result r set
       r.qty = v_qty
       where r.plt_no = par_plt_no;
  end if;
end;
0
ответ дан Littlefoot 16 January 2019 в 20:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: