Как получить последнюю строку файла Excel с помощью Oracle Forms - PullRequest
0 голосов
/ 11 июня 2018

Я импортирую данные из Excel в таблицу базы данных, используя Oracle Forms.Вот код, который я использую:

ligne_fin := 300;

FOR Z in 2..ligne_fin LOOP
  ligne:=Z;

  v_societe := Excel.get(1,Z,1)  ;
  v_compte := Excel.get(1,Z,2);
  v_Tiers := Excel.get(1,Z,3);
  v_section := Excel.get(1,Z,4);

  insert into EntrCl (SOCIETE, 
                      COMPTE, 
                      TIERS, 
                      SECTION)                      
    VALUES (v_societe,
            v_compte,
            v_Tiers,
            v_section);             
END LOOP

С моей функцией get

function GET(FOLIO in NUMBER, prow in number,pcol in number) 
  RETURN varchar2 
is
  deger varchar2(800);
Begin
  deger:='';

  args := OLE2.create_arglist;
  OLE2.add_arg (args, FOLIO);
  Worksheet:=OLE2.GET_OBJ_PROPERTY(workbook,'Worksheets',args);

  args:=OLE2.CREATE_ARGLIST;
  OLE2.ADD_ARG(args, prow);
  OLE2.ADD_ARG(args, pcol);
  cell:=ole2.get_obj_property(worksheet, 'Cells', args);

  deger := OLE2.Get_Char_Property(cell, 'Text');
  OLE2.RELEASE_OBJ(cell);
  OLE2.destroy_arglist (args);

  return(deger);
end;

Моя проблема заключается в том, что я хочу получить свой ligne_fin автоматически, используя код.Я не хочу жестко его кодировать.

Есть ли способ получить последнюю запись файла Excel с использованием PL / SQL?

1 Ответ

0 голосов
/ 14 июня 2018

Проверьте, не возвращает ли столбец нулевое значение для идентификации последней строки

 Z:=2;
 While(Excel.get(1,Z,1) is not null)
 loop 
 v_societe := Excel.get(1,Z,1)  ;
 v_compte := Excel.get(1,Z,2);
 v_Tiers := Excel.get(1,Z,3);
 v_section := Excel.get(1,Z,4);

 insert into EntrCl (SOCIETE, 
                  COMPTE, 
                  TIERS, 
                  SECTION)                      
VALUES (v_societe,
        v_compte,
        v_Tiers,
        v_section);  
 Z:=Z+1;
 end loop;
...