Sexta, Novembro 27, 2020

A instrução ALTER altera o ponto de transferência especificado em uma instrução GO TO.

 

Nota: A declaração ALTER incentiva o uso De práticas de programação não estruturadas. A declaração EVALUATE fornece a mesma função que a instrução ALTER e ajuda a garantir que seu programa será bem estruturado.

>>-ALTER-------------------------------------------------------->
 
   .--------------------------------------------------------.
   V                                                        |
>----procedure-name-1--TO--+------------+--procedure-name-2-+--><
                           '-PROCEED TO-' 

A instrução ALTER modifica a instrução GO TO no parágrafo nomeado por procedure-name-1. As execuções subseqüentes da instrução GO TO modificada transferem o controle para o procedure-name-2.

Procedure-name-1

Deve ser um parágrafo de divisão de procedimento que contém apenas uma frase: uma instrução GO TO sem a frase DEPENDING ON.

Procedure-name-2

Deve ser uma seção ou parágrafo de divisão de procedimento.

Se procedure-name-1 ou procedure-name-2 estiverem dentro de um procedimento declarativo, nenhum dos dois pode fazer referência a qualquer procedimento não declarativo. Na parte não-declarativa do programa, não deve haver nenhuma referência aos nomes de procedimento que aparecem em um procedimento declarativo EXCEPTION / ERROR, exceto que as instruções PERFORM podem se referir a um procedimento EXCEPTION / ERROR ou procedimentos associados a ele.

Antes de executar a instrução ALTER, quando o controle atinge o parágrafo especificado no procedure-name-1, a instrução GO TO transfere o controle para o parágrafo especificado na instrução GO TO. Após a execução da instrução ALTER, no entanto, o próximo controle de tempo atinge o parágrafo especificado em procedure-name-1, a instrução GO TO transfere controle para o parágrafo especificado em procedure-name-2.

 

Nota: Não utilize a instrução ALTER em programas que tenham o atributo RECURSIVE.