Regras

De DTI Wiki

Ir para: navegação, pesquisa

Existem templates para todos os objetos oracle em: \\pcserver\padroes\PLSQLDeveloper\Template.zip.

Este arquivo deve ser descompactado na pasta Template do diretório de instalação do PLSQLDeveloper. Na imagem padrão do Windows 7 o caminho é C:\Program Files (x86)\PLSQL Developer\Template.

Nas tabelas, não crie índices desnecessários. Verique a ordem dos campos nas constraints de PK e FKs, os campos dos respectivos índices devem estar na mesma ordem da constraint.

Somente crie índices se os campos não combinarem com parte de outro índice exsistente, mesmo sendo índices para FKs.

Exemplos:

Na tabela LANCAMENTO a PK é formada pelos campos ANO, MES, NUMLOTE e NUMLANCAMENTO, a FK para a tabela LOTE, formada pelos campos ANO, MES e NUMLOTE, não necessita de índice porque seus campos combinam com parte do índice da PK desde o primeiro campo e na mesma sequência.

Na tabela RUBRICARHTIPOCONTRATO a PK é formada pelos campos CODTIPOCONTRATO, CODRUBRICARH e CODATIVIDADE, as FKs para as tabelas RUBRICARH, formada pelo campo CODRUBRICARH, e ATIVIDADE, formada pelo campo CODATIVIDADE, necessitam de índice porque os campos não combinam com o índice da PK desde seu início. Já a FK para a tabela TIPOCONTRATO, formada pelo campo CODTIPOCONTRATO, não necessita de índice.

Para facilitar a manutenção, os tipos de variáveis deverão, sempre que possível, fazer referência a um campo da base de dados.

Por exemplo:

v_variavel  tabela.campo%TYPE



dessa forma, se o campo for alterado em seu tamanho ou tipo, não será necessário alterar o código que o referencia.
Para o mesmo fim, deverá ser criada uma estrutura (registro) para a saída de cada cursor, da seguinte maneira:

r_nomecursor   c_nomecursor%ROWTYPE;



com isso, qualquer alteração feita no cursor refletirá no fetch sem necessidade de manutenção.

Deverá ser repetido o nome da procedure ou function após o end final quando esta estiver em uma package.

Exemplo:

PROCEDURE prc_nomeprocedure IS
BEGIN
...
END prc_nomeprocedure;



Quando houverem variáveis para os cursores, essas devem ser passadas por parâmetro, não devem ser utilizadas variáveis globais para isso.

Exemplo da criação do cursor:

CURSOR c_ccusto(
    i_ano       contaspagar.ano%TYPE,
    i_numero    contaspagar.numctapagar%TYPE) IS
    SELECT   codcentrocusto,
             percentual
    FROM     ctapagarccusto
    WHERE    ano = i_ano
    AND      numctapagar = i_numero
    ORDER BY codcentrocusto;



Exemplo da abertura do cursor:

OPEN c_ccusto(ctpg.ano, ctpg.numctapagar);
Ferramentas pessoais
Espaços nominais
Variantes
Ações
Navegação
Ferramentas