Bom , provavelmente o problema está aqui:

client_ole2.add_arg(args, 'C:Ora.prn');
...
client_ole2.invoke(workbook, 'Save As', args);

Mas é só um palpite....

--
Rafael Alexandre Schmitt
[EMAIL PROTECTED]  ||  www.hbtec.com.br
Blumenau - Santa Catarina

  ----- Original Message ----- 
  From: Tathyanna Pelegrinni 
  To: [EMAIL PROTECTED] ; [email protected] 
  Sent: Wednesday, May 09, 2007 12:30 PM
  Subject: [oracle_br] Oracle Forms - ler informação de um excel


  Gente,

  O q é este erro "305500: non-ORACLE exception" ????

  Fiz o seguinte procedimento (veja abaixo) e dá essa messagem. Algúem pode me
  ajudar?

  Exemplo:

  PROCEDURE EXCEL(P_NOME_ARQ IN VARCHAR2,
  P_COLUNA_UM IN CHAR,
  P_COLUNA_DOIS IN CHAR,
  P_LINHA_INICIO IN NUMBER
  ) IS

  -- DELCARACAO DE VARIAVEIS DO TIPO OLE2 ( PACOTE MICROSOFT )
  application client_ole2.obj_type;
  workbooks client_ole2.obj_type;
  workbook client_ole2.obj_type;
  worksheet client_ole2.obj_type;
  cell client_ole2.obj_type;
  COLUNAS NUMBER(02);
  args client_ole2.list_type;
  Check_file client_text_io.file_type;
  WRK_LINHA_FIM NUMBER;

  --DECLARACAO DE VARIAVEIS E EXCEPTIONS
  no_file exception;
  PRAGMA exception_INIT(no_file, -302000);
  cell_value varchar2(2000);
  x number :=0; -- variavel para verificar 1º registro da coluna dois
  y number:=1; --variavel de controle

  BEGIN
  -- VERIFICA EXISTENCIA DO ARQUIVO
  Check_file := CLIENT_TEXT_IO.FOPEN(P_NOME_ARQ, 'R');
  CLIENT_TEXT_IO.FCLOSE(Check_file);
  application := client_ole2.create_obj('Excel.Application');
  workbooks := client_ole2.get_obj_property(application, 'Workbooks');

  --Abrir arquivo requerido em workbook
  go_ITEM('PREVIEW_IMPORTED_COST.W_REF_NUM');
  args := client_ole2.create_arglist;
  client_ole2.add_arg(args, P_NOME_ARQ); --endereco ou parametro do arquivo
  desejado
  workbook := client_ole2.invoke_obj(workbooks, 'Open', args);
  client_ole2.destroy_arglist(args);

  -- Abrir a folha (planilha) desse workbook
  args := client_ole2.create_arglist;
  client_ole2.add_arg(args, 'PLAN1');
  worksheet := client_ole2.get_obj_property(workbook, 'Worksheets', args);
  client_ole2.destroy_arglist(args);

  -- RECUPERA DADOS DAS CELULAS DO ARQUIVO
  args := client_ole2.create_arglist;

  --LEITURA DE LINHAS E COLUNAS DE ACORDO COM OS PARAMETROS FORNECIDOS

  for j in 1..2 loop

  -- recebe coluna digitada
  if y = 1 then
  y := p_coluna_um;
  else
  y := p_coluna_dois;
  end if;

  for i in P_LINHA_INICIO..65536 loop
  client_ole2.add_arg(args, i);
  client_ole2.add_arg(args, y);
  cell:= client_ole2.get_obj_property(worksheet, 'Cells', args);
  client_ole2.destroy_arglist(args);
  args:= client_ole2.create_arglist;

  --IDENTIFICA SE É NUMERO OU VARCHAR ( DEFAULT NÚMERO )
  cell_value := client_ole2.get_num_property(cell,'Value');
  if cell_value = 0 then
  cell_value := client_ole2.get_char_property(cell,'Value');
  end if;

  --VERIFICA DADOS NULOS
  IF CELL_VALUE IS NULL THEN
  EXIT;
  END IF;

  --POPULA AS COLUNAS
  if y = p_coluna_um then

  :PREVIEW_IMPORTED_COST.W_REF_NUM := cell_value;
  message (cell_value);

  --POPULA COLUNA DESCR
  /* BEGIN

  SELECT MRC.DESCR INTO :PREVIEW_IMPORTED_COST.DESCR
  from merc mrc, fornitura fnt
  where fnt.referencia = :PREVIEW_IMPORTED_COST.W_REF_NUM
  AND FNT.FORN_NUM = :CONTROLE.FORN_NUM
  AND FNT.FORNITURA_NUM = MRC.merc_num;

  exception
  when no_data_found then
  :PREVIEW_IMPORTED_COST.descr := ' ';
  END;*/

  elsif y = p_coluna_dois then
  x := x + 1;
  if x = 1 then
  first_record;
  end if;
  --
  :PREVIEW_IMPORTED_COST.W_CUST := cell_value;

  end if;

  NEXT_RECORD;
  end loop;

  --condicao para retornar ao loop de coluna
  if j = 1 then
  y :=2;
  else
  y:=3;
  end if;

  END LOOP;
  first_record;

  --DESTROI AS VARIAVEIS
  args := client_ole2.create_arglist;
  client_ole2.add_arg(args, 'C:Ora.prn');
  client_ole2.add_arg(args, 'Formatted text(Space
  delimited)(*.prn)&#124*.prn|');
  client_ole2.invoke(workbook, 'Save As', args);
  client_ole2.destroy_arglist(args);
  client_ole2.invoke(application, 'Quit');

  -- LIBERANDO AS VARIAVEIS DO TIPO OLE ( PACOTE MICROSOFT)
  client_ole2.release_obj(cell);
  client_ole2.release_obj(worksheet);
  client_ole2.release_obj(workbook);
  client_ole2.release_obj(workbooks);
  client_ole2.release_obj(application);
  go_ITEM('PREVIEW_IMPORTED_COST.W_REF_NUM');

  exception
  --TRATAMENTO DE ERRO, CASO NÃO ENCONTRE O ARQUIVO
  WHEN no_file THEN
  message('File Doesn`t exists');
  go_item('PREVIEW_IMPORTED_COST.SPREADSHEET');
  --DESabilita('PREVIEW_IMPORTED_COST.W_REF_NUM');
  -- DESabilita('PREVIEW_IMPORTED_COST.DESCR');
  -- DESabilita('PREVIEW_IMPORTED_COST.W_CUST');
  -- DESabilita('PREVIEW_IMPORTED_COST.IMPORT');

  --QUALQUER OUTRO ERRO, EXIBE MSG
  WHEN OTHERS THEN
  MESSAGE(sqlerrm);

  END;

  [As partes desta mensagem que não continham texto foram removidas]



   


------------------------------------------------------------------------------
  Esta mensagem foi verificada pelo E-mail Protegido Terra.
  Scan engine: McAfee VirusScan / Atualizado em 08/05/2007 / Versão: 5.1.00/5026
  Proteja o seu e-mail Terra: http://mail.terra.com.br/ 



[As partes desta mensagem que não continham texto foram removidas]

Responder a