Declarar como CONSTANT todas as variáveis que não serão alteradas pelo procedimento
De DTI Wiki
BOA PRÁTICA
Declarar como CONSTANT todas as variáveis que não serão alteradas pelo procedimento;
Sempre que houver o uso de constantes, a declaração desta deve ser feita com a instrução CONSTANT, para garantir que seu valor não será acidentalmente trocado durante manutenções futuras do código fonte.
POR QUE USAR
O uso de constantes dentro de um programa torna-o mais legível e fácil de seguir, além de economizar memória em algumas linguagens, por serem "variáveis estáticas".
A constante protege o valor contra alterações, diferente de uma variável que pode ser alterada acidentalmente.
Facilita muito a manutenção, porque no caso da necessidade de alteração do valor de uma constante, isso será feito somente em um ponto do código.
COMO NÃO FAZER
… v_contaare planocontas.codctacontabil%TYPE; … BEGIN v_contaare := 698; END;
NÃO devem ser declaradas constantes com nomes genéricos, como por exemplo:
COMO NÃO FAZER
V_CODSITUACAO CONSTANT SITUACAO.CODSITUACAO%TYPE := 15; -- Lançamento atualizado ou V_CODSITUACAO15 CONSTANT SITUACAO.CODSITUACAO%TYPE := 15; -- Lançamento atualizado
Um exemplo de utilização seria:
COMO FAZER
IF V_SITUACAO = V_LCTATUALIZADO THEN ... observe que a instrução acima é bem mais clara DO que: IF V_SITUACAO = 15 THEN ....
… v_contaare CONSTANT planocontas.codctacontabil%TYPE := 698; … BEGIN … END;
Em PL/SQL, no caso de PACKAGES, se o valor for utilizado em mais de um procedimento ou função, ela pode ser declarada no PACKAGE HEADER neste caso ficará como GLOBAL e PUBLIC, ou no PACKAGE BODY, antes da declaração do primeiro procedimento ou função, neste caso ela ficara como GLOBAL e PRIVATE.
Podemos ainda criar um PACKAGE HEADER, por esquema e/ou por aplicação, somente para declaração das constantes mais utilizadas, dessa forma elas seriam referenciadas nos demais programas como por exemplo:
COMO FAZER
IF V_SITUACAO = PKG_ADCONSTANTES.V_LCTATUALIZADO THEN ...
EXEMPLOS DE DECLARAÇÃO DE CONSTANTES
DELPHI:
GSSIT_DIGITADA : Integer = 1; // Gerenciador de Solicitações, situação digitada. GSSIT_LIDA_GESTOR : Integer = 2; // Gerenciador de Solicitações, situação lida pelo gestor GSSIT_CANCELADA_GESTOR : Integer = 3; // Gerenciador de Solicitações, situação cancelada pelo gestor.
PL/SQL:
V_LCTATUALIZADO CONSTANT SITUACAO.CODSITUACAO%TYPE := 15; -- Lançamento atualizado
PHP:
define('LCTO_ATUALIZADO', 15); // Lançamento atualizado