0% encontró este documento útil (0 votos)
39 vistas31 páginas

Reglas de Validacion Generales - 2020

El documento detalla diversas reglas de validación de datos para campos específicos en una base de datos, incluyendo restricciones sobre valores nulos, dominios permitidos, integridad referencial y formatos de datos. Se especifican condiciones para campos como TRAFICO, DESTINO, FECHA DE VIAJE, y otros, así como validaciones de formatos y rangos para fechas y números. Además, se incluyen ejemplos de consultas SQL para verificar el cumplimiento de estas reglas.

Cargado por

angelalrojasc2
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como XLS, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
39 vistas31 páginas

Reglas de Validacion Generales - 2020

El documento detalla diversas reglas de validación de datos para campos específicos en una base de datos, incluyendo restricciones sobre valores nulos, dominios permitidos, integridad referencial y formatos de datos. Se especifican condiciones para campos como TRAFICO, DESTINO, FECHA DE VIAJE, y otros, así como validaciones de formatos y rangos para fechas y números. Además, se incluyen ejemplos de consultas SQL para verificar el cumplimiento de estas reglas.

Cargado por

angelalrojasc2
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como XLS, PDF, TXT o lee en línea desde Scribd

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)

También podría gustarte