Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Tablas:
Se han adoptado algunas nomenclaturas para prefijar los nombres de las tablas:
Prefijo
Significado
Ejemplo
NTC_
DESPACHO.NTC_NOMINACION
DCG_
DESPACHO.DCG_AJUSTE_INYECCION
DCL_
Desbalance Cliente
DESPACHO.DCL_AJUSTE_CONSUMO
ABI_
ABI_BAL, ABI_COMPENSACION
SPAC_
SPAC_ASIGNACION_PUNTO
MV_
MV_CONSUMO
Columnas:
Nombre del objeto
Comentario
Ejemplo
ID_nombre_tabla
ID_CLIENTE; ID_PUNTO
FH_accin
FH_ENVIADO
NOMINADO
NTC_NOMINACION.NOMINADO
Constraints:
El espacio de nombre de las contraints es el del esquema.
Prefijo
Significado
Ejemplo
PK_xxx
PK_CLIENTE
UK_xxx_yyy
UK_CLIENTE_NEMONICO
FK_xxx_yyy
FK_CESION_ID_CAMARA
NN_xxx_yyy
NN_CLIENTE_FECHA_ALTA
TRANSPORTE.POS_TARIFA_TARIFA_FIRME
SN_xxx_yyy
DESPACHO.SN_NOMINACION_VERSION_CERRADA
CHK_xxx_yyy
CHK_BALANCE_MES_MES
Se recomienda no crear las constraints en el comando SQL CREATE TABLE, ya que stas se generan como System Named.
Si se utiliza el TOAD, no utilizar las columnas PK y NOT NULL de la grilla de armado de tablas, ya que las constraints resultantes se generan
como System Named.
Triggers:
La primera letra del nombre indicar el momento en que disparar el trigger:
B Before (Antes)
A After (Despus)
Agregado de la letra
S Si se trata de un trigger BEFORE o AFTER STATEMENT, si no se indica se supone FOR EACH ROW.
Luego, las siguientes letras indicarn en el orden que se expone, qu acciones sobre la tabla involucrada disparn los triggers:
I Insert
U Update
D Delete
A continuacin, el nombre de la tabla correspondiente.
Ejemplos:
Nombre
Significado
BIU_TARIFA
BSIUD_TARIFA
AIU_TARIFA
Secuencias:
Se prefijar SEQ_ y luego se indicar el nombre de la tabla que tiene uno o ms triggers que a su vez utilizan la secuencia.
Ejemplos:
SEQ_CAMARA_BALANCE
SEQ_GNC_CONTRATO_GAS
Packages:
Se prefijar PK_ y luego se indicar con una o ms palabras el mbito al que corresponde el package.
Ejemplos:
PK_NOMINACION
PK_CONTROL_FACTURACION
PK_CONTRATO
PK_VENTANA
Vistas:
Los nombres de las vistas se prefijarn segn el siguiente criterio:
Prefijo
Significado
V_
Vista estndar
VA_
MV_
Vista materializada
VD_
X_, XX_
Vistas intermedias, utilizadas por lo general para no incluir subquerys en la vista final
Significado
Ejemplo
Parmetro de funcin/procedimiento
pID_CLIENTE, pDIA_OPERATIVO
vCONT, vFECHA_DESDE
gDIA_OPERATIVO
Constante
kID_MERCADO_GU, kID_DISTCO
Cursor
cCLIENTES_ACTIVOS
eNO_VIGENTE
rCLIENTE_ACTIVO
Tipo
tARR_NOMINACION
Array
aNOMINACION
Comentarios:
Cabecera de mtodos:
Es obligatorio escribir un comentario en la cabecera de un mtodo (procedimiento o funcin). Se debe indicar al inicio del comentario las
iniciales del programador que cre o modific el mtodo.
El comentario no debe exceder las 2 lneas. Si se requiere ms detalle se deber recurrir a la especificacin que motiv la creacin o
cambio del mtodo, que seguramente tendr el contexto.
Historial de cambios: limitarlos a una lnea por cambio y si una lnea no es suficiente, hacer referencia al requerimiento (issue) que dio
origen al cambio. Si son varios issues se indicarn.
Ejemplo:
Nota: Este tipo de comentario dejar de utilizarse cuando se implemente svn para Oracle.
Comentarios en un bloque interno de cdigo:
Valen las mismas consideraciones que para los comentarios de cabecera. Por ejemplo: descripcin de un cursor.
Comentarios adicionales:
Corresponden a informacin que no es evidente, que no se puede deducir del comentario estandar y que el programador considera importante.
Ejemplos:
Pautas generales:
Nombrar los objetos de cada esquema con el prefijo del esquema, aunque sea redundante.
Ejemplos:
Utilizar tipo de variables enteras cuando los operandos sean enteros y el resultado un entero (PLS_INTEGER).
Evitar el uso de "Nmeros mgicos". Definir constantes con nombres representativos, prefijadas con k.
Evitar el uso de EXIT o RETURN para salir de un ciclo FOR o WHILE.
Utilizar nombres de variables en los ciclos que aporten mayor informacin que el simple uso de I, J, K, etc.
Ejemplos:
Ejemplo:
END BORRAR_APERTURA_NTC_NOM_CLIE;
-- Usar:
vVENCIDO := vFECHA_HASTA <= vFECHA_LIMITE;
-- En lugar de:
IF vFECHA_HASTA <= vFECHA_LIMITE
THEN
vVENCIDO := TRUE;
ELSE
vVENCIDO := FALSE;
END IF;
Indentacin (ejemplos):
Al definir variables:
vVERSION
PLS_INTEGER;
vID_TIPO_CONSUMO
PLS_INTEGER;
vCLAVE
VARCHAR2(255);
eTIPO_CONSUMO
EXCEPTION;
eVERSION
EXCEPTION;
vFH_PROCESO
DATE;
vDESDE
DATE;
vHASTA
DATE;
vTIPO
VARCHAR2(12);
Al escribir DMLs:
UPDATE CI.CESION_DIA
SET APERTURA_NOMINADO
= NOMINADO,
APERTURA_AUTORIZADO = AUTORIZADO,
ASIGNADO
= NULL
WHERE DIA_OPERATIVO = vDIA_OPERATIVO
AND ID_CESION IN (SELECT C.ID_CESION
FROM CI.V_CESION C
WHERE C.ID_CLIENTE_RECIBE = vID_CLIENTE);
DELETE
WHERE
AND
AND
AND
AND
Al escribir IFs:
BALANCE.CONSUMO_LOCALIDAD
ANIO
= vANIO
MES
= vMES
VERSION
= vVERSION
ID_LOCALIDAD
= TC.ID_LOCALIDAD
ID_TIPO_CONSUMO = vID_TIPO_CONSUMO;
IF a = 1
AND ( b = 2
OR c = 3
OR d = 4 )
THEN
accion_verdadero
ELSE
accion_falso
END IF;
Al asignar valores: