• Viernes 3 de Mayo de 2024, 19:17

Autor Tema:  Cómo Crear Un Formato Par Un Dato  (Leído 2536 veces)

prueba2306

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Cómo Crear Un Formato Par Un Dato
« en: Sábado 23 de Octubre de 2004, 20:10 »
0
Hola:
Tengo una duda para poder crear un dato con cierto formato:
Hagan de cuenta que creo una tabla de "Productos" (por ejemplo), con si ID del producto (su llave primaria), pero el ID se tiene que escribir de tal forma que tenga una "P" al principio y 6 dígitos (ejemplo "P123456", "P000001", etc) ¿Alguien sabe como puedo hacer eso?
Gracias de antemano.

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Cómo Crear Un Formato Par Un Dato
« Respuesta #1 en: Sábado 23 de Octubre de 2004, 23:25 »
0
UNA PREGUNTA, COMO TIENES DECLARADO EL TIPO PARA EL CAMPO ID, ENTERO O VARCHAR O TEXT O QUE POR QUE SI ES ENTERO NO CREO QUE LE PUEDAS COLOCAR UN CARACTER, DEBES DECLARARLO CARACTER EL CAMPO ID PARA QUE TE ACEPTE ESTE FORMATO
El pasado son solo recuerdos, el futuro son solo sueños

prueba2306

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: Cómo Crear Un Formato Par Un Dato
« Respuesta #2 en: Domingo 24 de Octubre de 2004, 02:05 »
0
Lo tengo declarado como Char de 9 caracteres (donde el primero es la clave y los otros 8 son el numeral).

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Cómo Crear Un Formato Par Un Dato
« Respuesta #3 en: Domingo 24 de Octubre de 2004, 18:00 »
0
No se sino te entendi..
pero no necesitas definir nungun tipo de dato,
como la longitud del dato no simpre sera la misma y maximo sera de 9 con un tipo varchar2(9) es suficiente.

El tipo varchar2 cambia su tamaño de acuerdo a lo que se use y es muy bueno para ahorrar espacio en disco y memoria.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

prueba2306

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: Cómo Crear Un Formato Par Un Dato
« Respuesta #4 en: Jueves 28 de Octubre de 2004, 23:24 »
0
Al contrario, en este caso por convención la longitud del dato si será el mismo. En este caso la clave de cualquier producto siempre será de tamaño 9. No importa que tenga solo ceros (P00000000), el hecho es que la clave 'P0' no puede existir en la base de datos.
Estoy conciente que por medio de un varchar se ahorraría espacio (cualquier persona sabe que '00000000 = 0') pero estoy tomando en cuenta un formato ya fijo que los productos traen ('tal vez' nunca haya un producto con la clave 'P0000000' pero si puede haber un producto con la clave 'P00050890' por citar un ejemplo).

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Cómo Crear Un Formato Par Un Dato
« Respuesta #5 en: Viernes 29 de Octubre de 2004, 05:09 »
0
de esa maner lo unico que se me ocurre es crear un constraint para la tabla
que sea...

El tipo de dato sera char(10), ya que la primera posicion sera para la 'P'

<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]alter table[/color] producto
add(constraint check producto_ck01
  (
      lenght(prod_numero) = 10 and substr(producto,1,1)='P'
  )
)
/
<!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->

De este modo cualquier dato que se insterte en ese campo se valida que comience por la letra 'P' y que adicionalmente el dato insertado tenga siempre 10 caracteres.

Adicionalmente puedes hacer tro constraint o alargar el mismo para validar que cada caracter digitado despues de la 'P' corresponda a un numero de 0 a 9.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Cómo Crear Un Formato Par Un Dato
« Respuesta #6 en: Sábado 30 de Octubre de 2004, 16:03 »
0
Esta es una optimizacion al codigo anterior
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]ALTER TABLE[/color] producto
ADD(
         CONSTRAINT CHECKproducto_ck01
         (
           lenght(prod_numero) = 10 AND producto LIKE ='P%'
         )
      )
/ <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io