Tipo regla Nombre campo Tipo de Dato Regla en Lenguaje Natural
RV100 - 111: Reglas de identidad
NULOS TRAFICO varchar
La variable TRAFICO no debe ser un valor NULO
RV400 - 169: Reglas de dominio
DOMINIOS DESTINO varchar
La variable DESTINO debe ser igual a ('I','N','E')
DOMINIOS TRIMESTRE number RV400 - 169: Reglas de Dominio
TRIMESTRE debe contener valores (1,2,3,4)
RV400: Reglas de dominio
DOMINIOS FECHAS FECHA DE VIAJE date Fecha de viaje debe ser mayor a Enero 1 de 2010 y
menor a 31 Agosto de 2010
RV550: Mutuamente dependientes: Restringidas por
valor
Mutuamente dependientes FECHA date
FECHA no debe ser mayor a la
FECHA_ACTUALIZACION del sistema
RV150 - 122: Reglas de integridad referencial
Validar integridad referencial del campo
INTEGRIDAD REFERENCIAL MES_DEL_TRIMESTRE number MES_DEL_TRIMESTRE con Tabla
MINTIC13_TPBC_MESDELTRIMES en el campo
MES
RV150 - 122: Reglas de integridad referencial
INTEGRIDAD REFERENCIAL ID_MUNICIPIO varchar (5) Validar integridad referencial del campo
ID_MUNICIPIO_ORIGEN con Tabla
CD_DIVIPOLA en el campo COD_MPIO
RV150 - 122: Reglas de integridad referencial
INTEGRIDAD REFERENCIAL ID_DEPARTAMENTO varchar (2) Validar integridad referencial del campo
ID_DEPARTAMENTO con Tabla CD_DIVIPOLA
en el campo COD_DEPTO
RV150 - 122: Reglas de integridad referencial
Validar integridad referencial del campo
INTEGRIDAD REFERENCIAL ID_PAIS_DESTINO varchar(3) ID_PAIS_DESTINO con Tabla
CD_PAISES_ISO_3166 en el campo
CODIGO_PAIS
RV150 - 122: Reglas de integridad referencial
Validar integridad referencial del campo CIIU con
INTEGRIDAD REFERENCIAL CIIU varchar(4)
Tabla (DANE) CD_CIIU_RV_4_AC campo
COD_CLASE
RV150 - 122: Regla de Integridad Referencial
Validar que el campo OCUC_CODIGO sea un
INTEGRIDAD REFERENCIAL OCUC_CODIGO varchar(4)
codigo valido en la tabla CD_CIUO_88AC campo
GRUPO_PRIMARIO
RE100: Correctitud de los datos
Validar que el digito de verificación (IDDV) sea un
valor valido según algoritmo de calculo
Funcion: Validación de digito de
verificación de un NIT - Modulo IDDV number
11
RE100 - 51118: Correctitud de los datos
Expresión regular: Validar que el campo
Validar campo numérico y NUMERO_IDENTIFICACION number
cantidad de dígitos NUMERO_IDENTIFICACION solo contenga
digitos del 0 a 9 y que sean solo 9 digitos
RE100 - 51118: Correctitud de los datos .
Expresión regular: Si el campo CAR_T440_VALOR_CONTR no es
CAR_T440_VALOR_CONTR number
Valida valores positivos en nulo, entonces debe ser igual a un numero real
campos numéricos positivo (acepta decimales)
Expresión regular: RE100: Correctitud de los datos
Valida la existencia de caracteres CONCESIONARIO varchar CONCESIONARIO debe ser igual a caracteres entre 0-
especiales en una cadena 9,a-z,A-Z
Tipo regla Nombre campo Tipo de Dato Regla en Lenguaje Natural
Expresión regular: RE100: Correctitud de los datos
CUST_NO number
Valida numero sin decimales La variable CUST_NO no debe tener decimales
RE100: Correctitud de los datos
Expresión regular:
Valida la existencia de mas de una letra Mayuscula en
Valida letras mayusculas en una STREET varchar
la cadena de caracteres.
cadena
Para minusculas usar: [:lower:]
RE100: Correctitud de los datos
Expresión regular:
Valida la existencia de espacios al principio,
Valida espacios al principio, STREET varchar
intermedio o al final en la cadena de caracteres.
intermedio o al final cadena
RE100: Correctitud de los datos
Expresión regular:
Valida que la cadena STREET contenga unicamente 3
Valida cantidad de caracteres en STREET varchar
caracteres alfanumericos:
una cadena
RE100: Correctitud de los datos
Expresión regular: Valida cuales registros en la cadena STREET inician
Valida cuales inician por "XX" en STREET varchar con el o los caracteres especificados para el ejemplo
una cadena los que inician con "AX".
Expresión regular: RE100 - 51118: Correctitud de los datos
Validación de correo toda la CORREO_ELECTRONICO varchar Validar que el campo CORREO_ELECTRONICO sea una
estructura dirección de correo valida según su formato estandar
RE100 - 51118: Correctitud de los datos
Expresión regular:
Pagina WEB varchar Validar que el campo IDWEB sea una dirección WEB
Validación de pagina WEB
ajustada al formato estandar
RC100 - 3916: Cubrimiento de valores
Validar que el campo FECHA_PAGO cumpla el
Expresión regular: Formato para fechas con formato YYYY-MM-DD ,
FECHA_PAGO varchar(10)
Validación de formato de fechas YYYY/MM/DD, DD/MM/YYYY
RC100 - 3916: Cubrimiento de valores
Expresión regular: Validar que el campo TARIFA_PENSION tenga un
Validación de valores máximos de TARIFA_PENSION number formato vàlido 0-100, puede ser decimal maximo con
5 decimales 5 decimales
RE100: Correctitud de los datos
Calcular edad a partir de FECHA_NACIMIENTO
Calculo de edad a partir de la
EDAD number
fecha de nacimiento
Hallar el ultimo registro de una tabla si no se tiene
Búsqueda ultimo registro de una una llave
RAZON_SOCIAL varchar
tabla
Tipo regla Nombre campo Tipo de Dato Regla en Lenguaje Natural
RC100 - 3916: Cubrimiento de valores
Validar que el campo
Validación de valores que estén APORTE_COT_OBLIGATORIA_P APORTE_COT_OBLIGATORIA_PENSION este
Number aproximado a un múltiplo de cien.
aproximados a múltiplos de 100 ENSION
RC100 - 3916: Cubrimiento de valores
Validar que el campo VALOR_MESADA este
Validación de valores que estén aproximado a un múltiplo de mil.
VALOR_MESADA number
aproximados a múltiplos de 1000
RV400: Reglas de dominio
Validación de dia DIA_NACIMIENTO number DIA_NACIMIENTO debe ser mayor igual a 1 y menor
igual a 31
RV400: Reglas de Dominio
MES_NACIMIENTO debe ser igual a
(1,2,3,4,5,6,7,8,9,10,11,12)
Validación de mes MES_NACIMIENTO number
RV550: Mutuamente dependientes, restringidas por
Validación de dia para mes de valor:
DIA_NACIMIENTO number Si MES_NACIMIENTO = 2, entonces
febrero
DIA_NACIMIENTO debe ser >= 1 y <= 29
RV550: Mutuamente dependientes, restringidas por
Validación de dia para meses de valor:
DIA_NACIMIENTO number Si MES_NACIMIENTO = 4,6,9,11 entonces
30 dias
DIA_NACIMIENTO debe ser >= 1 y <= 30
RV550: Mutuamente dependientes, restringidas por
Validación de dia para meses de valor:
DIA_NACIMIENTO number Si MES_NACIMIENTO = 1,2,3,5,7,8,10,12 entonces
31 dias
DIA_NACIMIENTO debe ser >= 1 y <= 31
Validación de valor repetido en valida que no hayan numeros repetidos de un
CONSECUTIVO number
una tabla atributo en una tabla
RC100 - 3916: Cubrimiento de valores
Validar que el consecutivo del campo BE_SECUENC no
Validación de la secuencia no se
BE_SECUENC number se rompa.
rompa de un numero consecutivo
Determina en que valor consecutivo se rompio la
secuencia.
RC100 - 3916: Reglas de cubrimiento de valores
Validación de que una variable no
tenga letras o caracteres NUMEROCREDITO varchar Validar que (NUMEROCREDITO no sea una cadena de
especiales y que sea caracteres que sea extrictamente numerica
extrictamente numerica
Validación de que una cadena No RV550 - 1713: Mutuamente dependientes:
tenga caracteres especiales, Restringidas por valor
signos de puntuación o Validar que VIAC_PRIMER_APELLIDO, No tenga
matemáticos. Para campos que VIAC_PRIMER_APELLIDO varchar caracteres especiales, signos de puntuacion o
solo pueden tener letras y matematicos.
espacios por ejemplo NOMBRES Y
APELLIDOS
Estado de la encuesta en Adolescentes.
Variable generada al realizar el merge entre la
base personas y la variable "estado_encuesta" de
la base Adolescentes
ESTADO_ENCUESTA_ADOLECE
Cambiar el formato de fecha para que los campos tipo
fecha sean decargados em formato año de 4 digitos
Tipo regla Nombre campo Tipo de Dato Regla en Lenguaje Natural
RV150: 122 Reglas de integridad
referencial
2. Validar que CODPRO sea un
Ploblema con el NOT IN
codigo valido en la tabla CPC
(REF_CPC_2AC) campo
ARTICULO(7digitos)
Regla en SQL Observacion
SELECT *
FROM AERO_10_orig_dest
WHERE TRAFICO IS NULL
SELECT *
FROM AERO_10_orig_dest
WHERE DESTINO NOT IN ('I','N','E')
SELECT *
FROM MINTIC13_TPBC_INGRREDSFI
WHERE TRIMESTRE NOT IN(1,2,3,4)
SELECT *
FROM DAS10_VIAJ_VIAJERO
WHERE FECHA_VIAJE NOT BETWEEN TO_CHAR(TO_DATE('01012010',
'DDMMYYYY'), 'YYYYWW')
AND TO_CHAR(TO_DATE('31082010', 'DDMMYYYY'), 'YYYYWW')
SELECT *
FROM AERO_10_orig_dest
WHERE
FECHA > FECHA_ACTUALIZACION
SELECT *
FROM MINTIC13_TPBC_INGRREDSFI
WHERE MES_DEL_TRIMESTRE NOT IN(SELECT MES FROM
MINTIC13_TPBC_MESDELTRIMES)
SELECT *
FROM MINTIC13_TPBC_TRAFILDNAC
WHERE ID_MUNICIPIO_ORIGEN NOT IN(SELECT COD_MPIO FROM
CD_DIVIPOLA)
SELECT *
FROM MINTIC13_SIF_MUNICIPIO
WHERE ID_DEPARTAMENTO NOT IN(SELECT COD_DEPTO FROM
CD_DIVIPOLA)
SELECT *
FROM MINTIC13_TPBC_TRAFLDISAL
WHERE ID_PAIS_DESTINO NOT IN(SELECT CODIGO_PAIS FROM
CD_PAISES_ISO_3166)
SELECT *
FROM ESALES_16_AGG_DIC_2016
WHERE CIIU NOT IN (SELECT COD_CLASE FROM CD_CIIU_RV_4_AC)
SELECT * Si no se indica el NOT NULL la consulta falla
FROM MIGRA_14_OCU_OCUPACION
WHERE OCUC_CODIGO NOT IN (SELECT GRUPO_PRIMARIO FROM
CD_CIUO_88AC WHERE GRUPO_PRIMARIO IS NOT NULL )
SELECT * Nota: El parametro corresponde Al numero del NIT
FROM EAH_16_CARATULA o Cédula y la función devulve el numero del digito
WHERE IDDV <> ValidarDigitoChequeoNIT(IDNITCC) de verificación valido.
El método denominado módulo 11 que se basa en
aplicar un factor de chequeo ponderado a cada
dígito del número original realizar algunos calculos y
finalmente obtener el digito de verificación.
SELECT *
FROM ESALES_16_AGG_DIC_2016
WHERE NOT REGEXP_LIKE(NUMERO_IDENTIFICACION, '^[0-9]{9}$')
SELECT *
FROM SSP_14_T440_FORMATO3
WHERE CAR_T440_VALOR_CONTR IS NOT NULL AND NOT
REGEXP_LIKE (CAR_T440_VALOR_CONTR, '^[0-9]')
SELECT *
FROM ANI_CARRETERO_PEAJES_16
WHERE NOT REGEXP_LIKE(CONCESIONARIO, '[^0-9,^a-z,^A-Z]')
Regla en SQL Observacion
SELECT *
FROM PRUEBA_BDF
WHERE NOT REGEXP_LIKE(CUST_NO, '^(?:\+|-)?\d+$')
/* Otra forma */
SELECT *
FROM PRUEBA_BDF
WHERE REGEXP_LIKE (CUST_NO, '[^0-9]')
/* Otra forma */
SELECT *
FROM PRUEBA_BDF
WHERE NOT REGEXP_LIKE (CUST_NO, '^[0-9]+$')
/* Otra forma */
SELECT *
FROM PRUEBA_BDF
WHERE (CUST_NO - FLOOR(CUST_NO)) > 0
La funcion FLOOR redondea el valor y por tanto al
realizar la diferencia (resta) esta debe ser cero si no
tiene valores decimales
SELECT *
FROM PRUEBA_BDF
WHERE REGEXP_LIKE(STREET, '[[:upper:]]{1}')
SELECT *
FROM PRUEBA_BDF
WHERE REGEXP_LIKE(STREET, '[[:space:]]')
SELECT *
FROM PRUEBA_BDF
WHERE REGEXP_LIKE(STREET, '[[:alnum:]]{3}')
SELECT *
FROM PRUEBA_BDF
WHERE REGEXP_LIKE(STREET, '^AX..')
SELECT *
FROM DANE_15_CENSO_HOGAR
WHERE NOT REGEXP_LIKE(TRIM(CORREO_ELECTRONICO), '^[A-Za-z0-9._%+-]+@[A-
Za-z0-9.-]+\.[A-Za-z]{2,4}$') TRIM = Quita espacios iniciales, doble del medio y
finales
SELECT *
FROM EAH_16_CARATULA
WHERE NOT REGEXP_LIKE(IDWEB, '^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-
Z])*(:(0-9)*)*(\/?)( [a-zA-Z0-9\-\.\?\,\’\/\\\+&%\$#_]*)?$')
SELECT *
FROM RA_PILA_2015_2145_ARCH1
WHERE REGEXP_LIKE(FECHA_PAGO,
'^(((19|20)([2468][048]|[13579][26]|0[48])|2000)[/-]02[/-]29|((19|20)[0-9]{2}[/-]
(0[4678]|1[02])[/-](0[1-9]|[12][0-9]|30)|(19|20)[0-9]{2}[/-](0[1359]|11)[/-]
(0[1-9]|[12][0-9]|3[01])|(19|20)[0-9]{2}[/-]02[/-](0[1-9]|1[0-9]|2[0-8])))')
SELECT *
FROM RA_PILA_2015_2145_ARCH2
WHERE NOT REGEXP_LIKE ( TO_CHAR(TARIFA_PENSION), '^[0-9]*\,[0-9]{0,5}$')
AND TARIFA_PENSION > 100
SELECT CEIL((months_between(SYSDATE,FECHA_NACIMIENTO)/12)) AS EDAD
FROM PRUEBA_BDF
La funcion CEIL Redondea (n) hasta el valor superior
SELECT rownum, RAZON_SOCIAL
FROM (SELECT rownum, RAZON_SOCIAL
FROM RA_RUES_16 ORDER BY rownum DESC)
WHERE rownum=1
Regla en SQL Observacion
SELECT *
FROM RA_PILA_2015_2145_ARCH2
WHERE
MOD(TO_NUMBER(SUBSTR(TO_CHAR(APORTE_COT_OBLIGATORIA_PENSION),LEN
GTH(TO_CHAR(APORTE_COT_OBLIGATORIA_PENSION))-2,3)),100) <> 0
SELECT *
FROM RA_PILA_2015_2145_ARCH2
WHERE
MOD(TO_NUMBER(SUBSTR(TO_CHAR(VALOR_MESADA),LENGTH(TO_CHAR(VALOR
_MESADA))-2,3)),1000) <> 0
SELECT *
FROM PROFAMI_11_ENDS_NIÑOS
WHERE DIA_NACIMIENTO NOT BETWEEN 1 AND 31
SELECT *
FROM PROFAMI_11_ENDS_NIÑOS
WHERE MES_NACIMIENTO NOT IN (1,2,3,4,5,6,7,8,9,10,11,12)
SELECT *
FROM PROFAMI_11_ENDS_NIÑOS
WHERE MES_NACIMIENTO = 2 AND DIA_NACIMIENTO NOT BETWEEN 1 AND 29
SELECT *
FROM PROFAMI_11_ENDS_NIÑOS
WHERE MES_NACIMIENTO IN (4,6,9,11) AND DIA_NACIMIENTO NOT BETWEEN 1
AND 30
SELECT *
FROM PROFAMI_11_ENDS_NIÑOS
WHERE MES_NACIMIENTO IN (1,2,3,5,7,8,10,12) AND DIA_NACIMIENTO NOT
BETWEEN 1 AND 31
SELECT * FROM TABLA_X
WHERE CONSECUTIVO IN (SELECT [Link] FROM TABLA_X a
HAVING COUNT([Link]) > 1
GROUP BY CONSECUTIVO)
SELECT *
FROM DANE_15_MINH_BENEFICIARIOS
WHERE BE_SECUENC IN (
SELECT A.BE_SECUENC
FROM DANE_15_MINH_BENEFICIARIOS A
LEFT JOIN DANE_15_MINH_BENEFICIARIOS B ON (A.BE_SECUENC = B.BE_SECUENC-
1)
WHERE B.BE_SECUENC IS NULL)
ORDER BY BE_SECUENC ASC
SELECT *
FROM PRUEBA_BDF La funcion TRANSLATE, esta remplazando cada
WHERE LENGTH(TRIM(TRANSLATE(PHONE, '+-,0123456789' , ' '))) IS NOT NULL digito por un blanco, si toda la cadena es numerica
quedara la variable con un valor igual a NULO.
SELECT *
FROM MIGRA_14_VIA_VIAJERO
WHERE REGEXP_LIKE(VIAC_PRIMER_APELLIDO, '[^a-z,^A-Z,^ ]')
ORDER BY VIAN_TIPO_DOCUMENTO
(0) Encuesta no realizada
SELECT *
(1) Encuesta incompleta
FROM MINSALUD17_MENTALPERS A
(2) Encuesta completa WHERE A.ESTADO_ENCUESTA_ADOLECE in
(SELECT estado_encuesta FROM
MINSALUD17_MENTAL_ADOLESI B WHERE
A.IDENTIFICADOR_HOGAR =
B.IDENTIFICADOR_HOGAR AND
AIDENTIFICADOR_PERSONA =
B.IDENTIFICADOR_PERSONA)
ALTER SESSION SET NLS_DATE_FORMAT = 'dd/mm/yyyy';
Regla en SQL Observacion
Problema:
SELECT COUNT(*)
FROM DANE_19_17EAM_PRODUCTO
WHERE CODPRO NOT IN (SELECT ARTICULO FROM REF_CPC_2AC)
(Da una consulta errada con cero(0) registros seleccionados)
Solución:
SELECT *
FROM DANE_19_17EAM_PRODUCTO a
WHERE NOT EXISTS (SELECT * FROM REF_CPC_2AC b
WHERE [Link] = [Link])
Regla para:
Dominios con letras
Dominios con fechas
Dominios para dias (fechas)
combinacion en dominios multiples
Regla para:
TABLAS DE REFERENCIA
TABLAS DE REFERENCIA
Regla para:
VALORES DEPENDIENTES
Regla para:
MUTUAMENTE DEPENDIENTES
Regla para:
FECHAS DE ACTUALIZACION
MUTUAMENTE DEPENDIENTES RESTRINGIDAS POR
VALOR
MUTUAMENTE DEPENDIENTES RESTRINGIDAS POR
VALOR
Regla para:
NULOS
VALORES
CARACTERES ESPECIALES
INTEGRIDAD REFERENCIAL
INTEGRIDAD REFERENCIAL
CUBRIMIENTO DE VALORES
CORRECTITUD DE DATOS : NO DEBE TENER
DECIMALES
CUBRIMIENTO DE VALORES: RANGOS DE
VALORES
Regla para:
CORRECTITUD DE LOS DATOS: VALIDAR
QUE EL EMAIL CONTENGA POR LO MENOS
UN (.) PUNTO
CORRECTITUD DE LOS DATOS: VALIDAR
QUE EL EMAIL CONTENGA POR LO MENOS
UN @
CORRECTITUD DE LOS DATOS: VALIDAR
QUE EL EMAIL CONTENGA SOLO UN @
CORRECTITUD DE LOS DATOS: VALIDAR
DIRECCION WEB
CORRECTITUD DE LOS DATOS: VALIDAR
ORDEN DEL FORMATO DE FECHAS
CORRECTITUD DE LOS DATOS: SOLO DEBE
CONTENER CARACTERES ENTRE 0 Y 9
CORRECTITUD DE LOS DATOS: VALIDA LA
CANTIDAD DE CARACTERES QUE DEBE
TENER CADA CAMPO
Regla para:
CORRECTITUD DE LOS DATOS: VALIDA QUE
EL CAMPO SOLO TENGA
caracteres (a-z Y A-Z)
QUE CONTIENE CARACTERES EN
MAYUSCULAS
QUE CONTIENE CARACTERES EN
MAYUSCULAS
CAMPOS QUE TIENEN ESPACIOS
CONTAR NUMEROS O LETRAS
NUMEROS REPETIDOS
VALORES REPETIDOS O IGUALES EN UN
CAMPO
CARACTERES ESPECIALES
BLANCOS
BLANCOS
BLANCOS
BLANCOS
BLANCOS
FECHA
Borrado de registros duplicados
Calcula el numero de dias que hay entre
dos fechas.
Validar la existencia de numeros negativos
en un campo numerico
Validar la existencia de numeros con cifras
decimales en un campo numerico
Valida que un campo sea un numero entero positivo o
negativo
Validacion de campos totalmente
numericos
Calcula numero de años entre dos fechas
Validar si una variable tipo carácter tiene
almacenada una fecha valida
Regla en Lenguaje Natural
Trafico debe ser igual a ('I','N','E')
Fecha de viaje debe ser mayor a Enero 1 de 2010 y menor a 31
Agosto de 2010
1. Q216D (Dia nacimiento) debe ser mayor igual a 1 y menor igual
a 31
Validar dominio (1,2,3,4,5,6,7,8,9,10,11,12), En campo Q216M
Mes nacimiento
si Q216M mes = 2 ENTONCES Q216D dia DEBE SER >= 1 y <= 29
si Q216M mes = 4,6,9,11 ENTONCES Q216D dia debe ser >= 1 y <=
30
si Q216M mes = 1,2,3,5,7,8,10,12 ENTONCES Q216D dia debe ser
>= 1 y <= 31
Validar dominio (A,B,C,D,E,F,G,H,I,J,X) en campo Q1149 y sus
combinaciones
Regla en Lenguaje Natural
La variable Sigla_Oaci debe existir en la Tabla de Empresas en el
campo Siglaoaci
la variable CODIGO_CIUDAD para PAIS_ORIGEN = COLOMBIA debe
estar relacionado en la DIVIPOLA en el campo COD_MPIO_5
Regla en Lenguaje Natural
2. Si P6 = 1 entonces, P7_1 debe ser = 0 y P7_2 debe ser = 0 y
P7_3 debe ser = 0 y P7_4 debe ser = 0 y P7_5 debe ser = 0 - todos
los P7_1-2-3-4-5 deben ser cero (0).
Regla en Lenguaje Natural
2. Si EDAD >= 3 y P6170(G2) = 2 , entonces P6210 (G4) || P6210S1
debe ser diferente de 20, 30, 40 y 60 y que la encuesta este
completa (INCOMPLETA = 0)
Regla en Lenguaje Natural
2. Fecha no debe ser mayor a la Fecha_Actualizacion del sistema
3. Validar que el campo TIPO_DOCUMENTO_CODIGO: Si
pais_nacimiento es Colombia y edad es menor que 18 años,
entonces el tipo documento no puede ser cedula(1), Cedula
militar(11) o NIT (22).
2. Validar el campo FECHA_NACIMIENTO: La fecha de nacimiento
debe ser menor a la fecha de viaje.
Regla en Lenguaje Natural
La variable Trafico no debe ser nulo
La variable Pasajeros debe ser mayor o igual a cero
La variable Empresa_Siglaoaci debe ser igual a
caracteres entre 0-9,a-z,A-Z
RV150: Reglas de integridad referencial
Validar que la variableP1_COD_DEPTO (codigo de departamento), sea un código
valido en la tabla CD_DIVIPOLA
RV150: Reglas de integridad referencial
Validar que la variable P1_COD_DEPTO (codigo de departamento)+
P2_COD_MPIO (codigo municipio), sea un código valido en la tabla CD_DIVIPOLA
campo COD_MPIO de 5 caracteres
El valor de PRO_VEHI no debe ser superior a un 1,15
del valor digitado en la misma casilla en el mes
anterior, ni ser menor a 0,85 del valor digitado en el
mismo campo el mes anterior (Año 2010).
La variable MVNR no debe tener decimales
La variable MVNR debe tener valores entre 0 y 999
Regla en Lenguaje Natural
El campo EMAIL_1 tenga por lo menos un punto (.)
El campo EMAIL_1 debe ser un e-mail valido,
almenos tener un carácter @
El campo EMAIL_1 no debe tener mas de un @
El campo WEB debe comenzar por 'www.' o 'WWW.'
Valida que el formato de la fecha seayyyy/mm/dd
La variable IDNIVRESVARS debe ser igual a numeros
0-9.
La variable TIPO_FORMATO SOLO PUEDE
CONTENER 2 CARACTERES EN CADA REGISTRO
VALIDADO /* SE PONE EL NUMERO 3 PARA
ENCONTRAR CAMPOS CON MAS DE 2 VARIABLES
Regla en Lenguaje Natural
LA VARIABLE Empresa_Siglaoaci SOLO PUEDE
CONTENER CARACTERES (LETRAS a-z ó A-Z /* SE
PONE EL NUMERO 3 PARA ENCONTRAR CAMPOS
QUE TIENES 3 LETRAS
PARA BUSCAR LOS CAMPOS QUE CONTIENEN
CIERTO NUMERO DE CARACTERES EN MAYUSCULAS
PARA BUSCAR LOS CAMPOS QUE CONTIENEN
CIERTO NUMERO DE CARACTERES EN MINUSCULAS
Para buscar campos que tienen espacios
cuenta numeros o letras identifica el carácter que se
requiera los puntos completan el total de caracteres
que se van a aevaluar.
valida que no hayan numeros repetidos en una
misma fila
INTERNO no puede tener valores repetidos o iguales
Validar el campo NUMERO_VIAJE no tenga
caracteres especiales
BLANCOS AL INICIO DE LA CADENA
BLANCOS AL FINAL DE LA CADENA
BLANCOS AL FINAL E INICIO DE LA CADENA
BLANCOS AL FINAL E INICIO DE LA CADENA
BLANCOS AL FINAL E INICIO DE LA CADENA
OBTENER UNA FECHA DE CAMPOS SEPARADOS DE DIA, MES AÑO
borrado de registos repetidos en una tabla
Calcula el numero de dias entre dos fechas
RC100 - 3916: Reglas de cubrimiento de valores
El valor del campo VALORCONTRATO solo debe contener
dígitos (sin puntos ni comas ni decimales)
Opcion 1
Esta consulta nos devuele todos los registros que
sean númericos en una determinada columna.
Opcion 2
Esta sencilla consulta nos devolverá todos los
valores que sean totalmente numéricos en una
determinada columna, descartando también los
valores nulos.
RC100: 3916 Reglas de cubrimiento de valores
1. Campo FECHA_NACIMIENTO es requerido, Obligatorio NO
DEBE SER NULO.
RE100: Correctitud de los datos
2. Campo FECHA_NACIMIENTO No puede ser menor a 3 años, ni
mayor a 99. La edad se calcula en años cumplidos al 31 de marzo
para calendario A y 31 de octubre para calendario B
111 - Conformidad:
Validar que el campo corresponda al estandar de fecha, según la
norma técnica Colombiana NTC 1034-2014 de Formatos Fechas y
Horas.
Regla en SQL
SELECT *
FROM AERO_10_orig_dest
WHERE
Trafico not in ('I','N','E')
SELECT *
FROM DAS10_VIAJ_VIAJERO
WHERE FECHA_VIAJE NOT BETWEEN TO_CHAR(TO_DATE('01012010', 'DDMMYYYY'), 'YYYYWW')
AND TO_CHAR(TO_DATE('31082010', 'DDMMYYYY'), 'YYYYWW')
SELECT *
FROM PROFAMI_11_ENDS_NIÑOS
WHERE Q216D NOT BETWEEN 1 AND 31
SELECT *
FROM PROFAMI_11_ENDS_NIÑOS
WHERE Q216M NOT IN (1,2,3,4,5,6,7,8,9,10,11,12)
SELECT *
FROM PROFAMI_11_ENDS_NIÑOS
WHERE Q216M = 2 AND Q216D NOT BETWEEN 1 AND 29
SELECT *
FROM PROFAMI_11_ENDS_NIÑOS
WHERE Q216M IN (4,6,9,11) AND Q216D NOT BETWEEN 1 AND 30
SELECT *
FROM PROFAMI_11_ENDS_NIÑOS
WHERE Q216M IN (1,2,3,5,7,8,10,12) AND Q216D NOT BETWEEN 1 AND 31
SELECT *
FROM PROFAMI_11_ENDS_MUJERES
WHERE NOT REGEXP_LIKE(Q1149, '^[A-J,X]')
Regla en SQL
SELECT *
FROM AERO_10_orig_dest
WHERE Sigla_Oaci
NOT IN (SELECT Siglaoaci
FROM AERO_10_EMPRESAS)
SELECT *
FROM AERO_10_AEROPUERTOS
WHERE
PAIS_ORIGEN = 'COLOMBIA'
AND CODIGO_CIUDAD NOT IN (SELECT COD_MPIO_5 FROM CD_DIVIPOLA)
Regla en SQL
SELECT *
FROM BANREP10_EMEE_FEB_SEP_2010
WHERE P6 = 1 AND
(P7_1 <> 0
OR P7_2 <> 0
OR P7_3 <> 0
OR P7_4 <> 0
OR P7_5 <> 0)
Regla en SQL
SELECT *
FROM GEIH_DBF_GECH_6_4
WHERE
EDAD >= 3 AND P6170 = 2 AND INCOMPLETA = 0 AND (P6210||P6210S1) IN (20,30,40,60)
Regla en SQL
SELECT *
FROM AERO_10_orig_dest
WHERE
Fecha >Fecha_Actualizacion
SELECT *
FROM DAS10_VIAJ_VIAJERO
WHERE
EDAD < 18 AND
PAIS_NACIMIENTO_CODIGO = 169 AND
TIPO_DOCUMENTO_CODIGO IN (1,11,22)
SELECT *
FROM DAS10_VIAJ_VIAJERO
WHERE FECHA_NACIMIENTO > FECHA_VIAJE
Regla en SQL
SELECT *
FROM AERO_10_orig_dest
WHERE
Trafico IS NULL
SELECT *
FROM AERO_10_orig_dest
WHERE
Pasajeros < '0'
SELECT *
FROM AERO_10_Estad
WHERE REGEXP_LIKE(Empresa_Siglaoaci, '[^0-9,^a-z,^A-Z]')
SELECT *
FROM ENA_12_SM1_CP0
WHERE
P1_COD_DEPTO NOT IN (SELECT TO_NUMBER(COD_DEPTO)
FROM CD_DIVIPOLA )
SELECT *
FROM ENA_12_SM1_CP1
WHERE
P1_COD_DEPTO || P2_COD_MPIO NOT IN (SELECT TO_NUMBER(COD_MPIO)
FROM CD_DIVIPOLA )
SELECT *
FROM ETUP10_PARA_CEI_2010 a
WHERE
a.ano_grab = '2010' and
a.mes_grab > 1 and
a.cod_empr+a.num_vehi IN (SELECT b.cod_empr+b.num_vehi FROM
ETUP10_PARA_CEI_2010 b
WHERE
b.ano_grab = '2010' and
b.mes_grab = a.mes_grab -1 and
a.pro_vehi > (b.pro_vehi * 1.15) and
a.cod_empr = b.cod_empr)
SELECT *
FROM MMH10_sep09sep10
WHERE NOT REGEXP_LIKE(MVNR, '^(?:\+|-)?\d+$')
SELECT *
FROM MMH10_sep09sep10
WHERE MVNR > 999
Regla en SQL
SELECT *
FROM RNT10_INFO_REGISTRONAL
WHERE instr(email_1,'.',1)= 0 AND email_1 IS NOT NULL
SELECT *
FROM RNT10_INFO_REGISTRONAL
WHERE instr(email_1,'@',1) = 0 AND email_1 IS NOT NULL
SELECT *
FROM RNT10_INFO_REGISTRONAL
WHERE instr(email_1,'@',1,2) > 1 AND email_1 IS NOT NULL
SELECT *
FROM RNT10_INFO_REGISTRONAL
WHERE WEB NOT LIKE 'WWW.%' AND
WEB NOT LIKE 'www.%' AND
WEB IS NOT NULL
SELECT *
FROM RNT10_INFO_REGISTRONAL
WHERE NOT REGEXP_LIKE(INICO_OPERACIONES, '[^0-9,^/]') AND
INICO_OPERACIONES IS NOT NULL
SELECT *
FROM SIEL10_NIVRESVARS
WHERE REGEXP_LIKE (IDNIVRESVARS, '[^0-9]')
SELECT *
FROM AERO_10_Estad
WHERE REGEXP_LIKE(TIPO_FORMATO, '[[:alnum:]]{3}')
Regla en SQL
SELECT *
FROM AERO_10_Estad
WHERE REGEXP_LIKE(Empresa_Siglaoaci, '[[:alpha:]]{3}');
SELECT *
FROM AERO_10_Estad
WHERE REGEXP_LIKE(TIPO_FORMATO, '[[:upper:]]{1}');
SELECT *
FROM AERO_10_Estad
WHERE REGEXP_LIKE(TIPO_FORMATO, '[[:lower:]]');
SELECT *
FROM AERO_10_Estad
WHERE REGEXP_LIKE(Empresa_Siglaoaci, '[[:space:]]');
SELECT count (*)
FROM AERO_10_Estad
WHERE REGEXP_LIKE(Empresa_Siglaoaci, '^A..');
SELECT * FROM PRUEBA_PK
WHERE CONSECUTIVO IN (SELECT [Link] FROM PRUEBA_PK A
HAVING COUNT([Link]) > 1
GROUP BY CONSECUTIVO)
select *
from inpec_interno_11 a
WHERE
[Link] in(select [Link] from inpec_interno_11 b GROUP BY [Link]
HAVING COUNT ([Link]) >1)
SELECT *
FROM DAS10_VIAJ_VIAJERO
WHERE REGEXP_LIKE(NUMERO_VIAJE, '[^0-9,^a-z,^A-Z]')
SELECT *
FROM PRUEBA_BDF
WHERE substr(NAME,1,1) = ' '
SELECT *
FROM PRUEBA_BDF
WHERE substr(NAME,-1,1) = ' '
SELECT *
FROM PRUEBA_BDF
WHERE substr(NAME,1,1) = ' ' or substr(NAME,-1,1) = ' '
SELECT *
FROM PRUEBA_BDF
WHERE regexp_like (NAME, '(^ | $)')
SELECT *
FROM PRUEBA_BDF
WHERE regexp_like (NAME, '(^ [: space:] | [: space:] $)')
SELECT TO_DATE(TO_CHAR(TO_CHAR(P40_2_CPAS_DIA_SIEM)||'/' ||TO_CHAR(P40_1_CPAS_MES_SIEM) ||'/'||
TO_CHAR(P40_3_CPAS_ANIO_SIEM)),'DD/MM/YYYY'),
TO_DATE(TO_CHAR(TO_CHAR(P41_2_CPAS_DIA_COS)||'/' ||TO_CHAR(P41_1_CPAS_MES_COS)||'/' ||
TO_CHAR(P41_3_CPAS_ANIO_COS)),'DD/MM/YYYY' )
FROM DANE_12_ENA1_TRSP11_CULP
WHERE P40_2_CPAS_DIA_SIEM IS NOT NULL AND
P41_2_CPAS_DIA_COS IS NOT NULL
sentencia eliminar esos registros innecesarios:
delete from tabla
where rowid not in
(select min(rowid)
from tabla
group by (col_pk1, col_pk2, col_pk3...);
Donde tabla indica la tabla en cuestión y las col_pkn son las columnas que forman la primary key.
SELECT FECHA_FINAL_ETAPA, FECHA_INIC_ETAPA, TRUNC(FECHA_FINAL_ETAPA) -
TRUNC(FECHA_INIC_ETAPA) AS DIFERENCIA
FROM SSOCLJ_DATOS_LIQUIDAJUDICI
SELECT VALOR FROM SSALUD_13_TIPO_001
WHERE REGEXP_LIKE(VALOR, '^-\d*\.{0,1}\d*$')
SELECT *
FROM SSALUD_13_TIPO_001
WHERE REGEXP_LIKE(VALOR, '\,[0-9]+')
SELECT *
FROM SSALUD_13_TIPO_009
WHERE NOT REGEXP_LIKE(VALORCONTRATO, '^-{0,1}\d+$')
Opcion 1
SELECT *
FROM TABLE
WHERE TRANSLATE(COLUMNA, 'T 0123456789', 'T') IS NULL
AND COLUMNA IS NOT NULL;
Opcion 2
SELECT *
FROM TABLE
WHERE REGEXP_LIKE (COLUMNA, '^[[:digit:]]+$');
SELECT *
FROM MEN_19_MATRICULA_OFICIAL
WHERE (FLOOR(MONTHS_BETWEEN('31-12-2018', FECHA_NACIMIENTO) / 12) > 99) OR
FLOOR(MONTHS_BETWEEN('31-10-2018', FECHA_NACIMIENTO) / 12) < 3
SELECT *
FROM SUPERSER_21_CCE_TC2_2020_2
WHERE NOT REGEXP_LIKE(CAR_T1743_FCH_PUBL_TARIFA_APL,'^\d{2}\-\d{2}\-\d{4}$')
Tener en cuenta el formato: ejemplo
^\d{2}\-\d{2}\-\d{4}$ = DD-MM-AAAA
2- 2-4
SELECT SUBSTR (NACIONALIDAD, 1,3)
FROM BANREP_TF_F2COMPLETA
WHERE NACIONALIDAD NOT IN (SELECT CODIGO_PAIS FROM REF_PAISES_ISO_3166)
UPDATE BANREP_TF_F2COMPLETA
SET NACIONALIDAD = SUBSTR (NACIONALIDAD, 1,3)