Constraint en Oracle

Li3cht

Hola de nuevo, ya vuelvo por aquí pero esta vez para una duda de Oracle XD.
Resulta que estamos haciendo el tema de CONSTRAINTS (restricciones) y el profesor pues ha planteado un enunciado tal que así:

  • Añadir una CONSTRAINT CHECK con el nombre cps_cli_ck que lo que haga es que CPS_CLI, que sería el código postal, solo puedan ser números. Si el usuario entra alguna letra, que no permita la entrada de datos.

Bien. Me dispongo a pensar y pensar... pruebo mil cosas y nada, así que decido llamarle y que me ayude. SORPRESA! No sabe hacerlo ni él... xD y ahora me he quedado con las ganas de si habría alguna posibilidad, y bueno, que seguro que esto subirá mucha nota el Lunes jaja

Os dejo el enunciado (me lo invento yo para que os situéis) y a ver si algún experto en esto sabría resolverlo, estoy en primero de ASI:

Enunciado

Gracias de antemano y a ver si es posible hacerlo.

B

.

Beavis

has probado con REGEXP_LIKE ? algo tipo ... CHECK REGEXP_LIKE(cps_cli,'^[[:digit:]]{5}$')

1 respuesta
Li3cht

#3 No tengo ni idea de lo que has puesto jaja pero me lo apuntaré para probarlo, si puedes explicarme lo que hace cada cosa te lo agradezco.

La cosa sería hacerlo con comandos bastante básicos, ya que como os digo, no estamos muy puestos aún en el temario.

EDIT: Estoy probando tu consulta y me dice todo el rato "Falta el paréntesis izquierdo". He puesto miles y nada XD he googleado un poco y la sintaxis debería estar bien...

VipeR_CS

Puto paréntesis izquierdo de Oracle. No me habrá dado por culo apenas no.

No sé yo si se podrá usar el REGEXP_LIKE en las constraints. Prueba a poner paréntesis después del CHECK.

ADD CONSTRAINT my_cps_cli_ck
CHECK (REGEXP_LIKE(cps_cli,'^[[:digit:]]{5}$'))
1 respuesta
Li3cht

#5 Muchas gracias! ya funciona correctamente, pero no había visto nunca ese comando jeje
gracias a ti también Beavis por el code :)

Usuarios habituales