The syntax for the FOR Loop is:
FOR loop_counter IN [REVERSE] lowest_number..highest_number
LOOP
{.statements.}
END LOOP;
You would use a FOR Loop when you want to execute the loop body a fixed number of times.
Let's take a look at an example.
FOR Lcntr IN 1..20LOOP
LCalc := Lcntr * 31;
END LOOP;
This example will loop 20 times. The counter will start at 1 and end at 20.
The FOR Loop can also loop in reverse. For example:
FOR Lcntr IN REVERSE 1..15
LOOP
LCalc := Lcntr * 31;
END LOOP;
This example will loop 15 times. The counter will start at 15 and end at 1. (loops backwards)
terça-feira, 27 de abril de 2010
Calendário da Agenda de Recolhimento
Eventualmente a instalação em alguns desktops não apresenta alguns dos calendários na tela de Agenda de Recolhimento, com isso faz-se necessário a instalação do objeto "Mscal.ocx", a instalação deve ser conforme abaixo:
SOLUÇÃO : Para solucionar o problema em questão, estamos encaminhando a ocx MSCAL.OCX para ser aplicada na base da solução Fiscal com as seguintes orientações:
Copiar essa ocx no diretório C:\WINNT\system32 e em seguida registra-la na opção Iniciar -> Executar e digitar o comando REGSVR32 C:\WINNT\system32\MSCAL.OCX.
Em Seguida deverá testar novamente o funcionamento da tela com problema no calendário.
SOLUÇÃO : Para solucionar o problema em questão, estamos encaminhando a ocx MSCAL.OCX para ser aplicada na base da solução Fiscal com as seguintes orientações:
Copiar essa ocx no diretório C:\WINNT\system32 e em seguida registra-la na opção Iniciar -> Executar e digitar o comando REGSVR32 C:\WINNT\system32\MSCAL.OCX.
Em Seguida deverá testar novamente o funcionamento da tela com problema no calendário.
segunda-feira, 26 de abril de 2010
Roteiro para geração de arquivo texto:
DECLARE
arquivo_saida UTL_File.File_Type;
Cursor Cur_Linhais select to_char(sysdate,'dd/mm/yyyy hh24:mi:ss "século" CC') DATA from dual;
BEGIN
/*
A Append Text
AB Append Byte Mode
R Read Text
RB Read Byte Mode
W Write Text
WB Write Byte Mode
*/
arquivo_saida := UTL_File.Fopen('/home/oracle/','alfa.txt', 'W');
For Reg_Linha in Cur_linha Loop
UTL_File.Put_Line(arquivo_saida, Reg_linha.Data);
End Loop;
UTL_File.Fclose(arquivo_saida);
Dbms_Output.Put_Line('Arquivo gerado com sucesso.');
EXCEPTION
WHEN UTL_FILE.INVALID_OPERATION THEN
Dbms_Output.Put_Line('Operação
inválida no arquivo.');
inválida no arquivo.');
UTL_File.Fclose(arquivo_saida);
WHEN UTL_FILE.WRITE_ERROR THEN
Dbms_Output.Put_Line('Erro de
gravação no arquivo.');
gravação no arquivo.');
UTL_File.Fclose(arquivo_saida);
WHEN UTL_FILE.INVALID_PATH THEN
Dbms_Output.Put_Line('Diretório
inválido.');
inválido.');
UTL_File.Fclose(arquivo_saida);
WHEN UTL_FILE.INVALID_MODE THEN
Dbms_Output.Put_Line('Modo de acesso
inválido.');
inválido.');
UTL_File.Fclose(arquivo_saida);
WHEN Others THEN
Dbms_Output.Put_Line('Problemas na
geração do arquivo.');
geração do arquivo.');
UTL_File.Fclose(arquivo_saida);
END;
Roteiro para leitura de arquivo texto:
DECLARE
arquivo_ler UTL_File.File_Type;
Linha Varchar2(100);
BEGIN
arquivo_ler := UTL_File.Fopen('caminho completo’,’nm arquivo', 'r');
Loop
UTL_File.Get_Line(arquivo_ler, Linha);
End Loop;
UTL_File.Fclose(arquivo_ler);
Dbms_Output.Put_Line('Arquivo processado com sucesso.');
EXCEPTION
WHEN No_data_found THEN
UTL_File.Fclose(arquivo_ler);
Commit;
WHEN
UTL_FILE.INVALID_PATH THEN
UTL_FILE.INVALID_PATH THEN
Dbms_Output.Put_Line('Diretório
inválido.');
inválido.');
UTL_File.Fclose(arquivo_ler);
WHEN Others THEN
Dbms_Output.Put_Line
('Problemas na leitura
do arquivo.');
('Problemas na leitura
do arquivo.');
UTL_File.Fclose(arquivo_ler);
END;
Assinar:
Postagens (Atom)