PDA

Ver la Versión Completa : Valores nulos en campos de tabla


plugin
18/05/11, 20:46:44
Muy buenas.
En primer lugar saludos a todos los usuarios del foro.
Acabo de aterrizar en SAP y tengo un montón de dudas, así que os agradezco de antemano cualquier ayuda.
De momento, la primera:
Intento crear una tabla con los campos que permitan valores nulos.
Para ello uso la SE11, y no marco los check que indican que se pongan valores por defecto.
Según la documentación, con esto es suficiente para que se creen los campos con valores NULL, pero no es así. Siempre se crean con valores DEFAULT y como NOT NULL.
O sea, que hace caso omiso del campo "Valores iniciales"...
¿Alguna opinión?

Gracias miles !!!

DCErick
18/05/11, 23:21:04
Una duda, cual es la finalidad de tener valores "nulos"?

Yo nunca marco esa opción al crear la tabla eso solo lo hago con los campos clave.

Cuando la tabla tiene registros y agrego un campo al final entonces si marco ese check puesto que si no lo marco no me deja hacer consultas usando ese campo nuevo en la clausula where a no ser que use la transaccion SE14 para ajustar la tabla.

No sé como hagas el insert a la tabla, pero si haces insert usando una estructura (ztable from wa_ztable.) dicha estructura tiene los valores iniciales es por eso que los pone, lo misma pasa cuando haces el insert desde una tabla interna (insert ztable from table ti_ztable.).

plugin
19/05/11, 08:58:20
Una duda, cual es la finalidad de tener valores "nulos"?

Yo nunca marco esa opción al crear la tabla eso solo lo hago con los campos clave.

Cuando la tabla tiene registros y agrego un campo al final entonces si marco ese check puesto que si no lo marco no me deja hacer consultas usando ese campo nuevo en la clausula where a no ser que use la transaccion SE14 para ajustar la tabla.

No sé como hagas el insert a la tabla, pero si haces insert usando una estructura (ztable from wa_ztable.) dicha estructura tiene los valores iniciales es por eso que los pone, lo misma pasa cuando haces el insert desde una tabla interna (insert ztable from table ti_ztable.).


Pues se me ocurren un par de situaciones.
Por ejemplo en los campos INTEGER, los valores por defecto ( en este caso 0 ) puede tener sentido de negocio. Por lo que no sé si se ha introducido valor o no en el campo.

Otra situación es la definición de restricciones. Al final se traducen en CONSTRAINTS en la base de datos subyacente (en mi caso DB2), lo que, si no es nulo el valor de clave ajena, obliga a la existencia del registro con esa clave (0 en INTEGERS, blancos en CHAR...) en la tabla de referencia.

Y otra, porque la documentación dice una cosa, y el sistema hace otra.
Marques o no el indicador de "valores iniciales", siempre hace lo mismo...

Gracias por tu ayuda!!!

ballan
19/05/11, 10:47:10
Si se pueden introducir valores nulos en un campo de una tabla, incluso aunque se haya definido como clave (obviamente si el campo es clave el valor nulo solo podras introducirlo 1 vez)

Lo que pasa es que dependiendo del elemento de datos sobre el que este definido el campo puede introducir valores por defecto o no

Por ejemplo si tu defines un campo que es de texto podras dejar ese campo en blanco pero si el campo lo defines contraun elemento de datos de tipo integer metera un 0 que es el valor por defecto del integer, tambien hay elementos de datos que tienen rutinas de conversion por lo que piensas que deberia introducir un blanco y mete 00000

DCErick
19/05/11, 14:11:09
Y otra, porque la documentación dice una cosa, y el sistema hace otra.
Marques o no el indicador de "valores iniciales", siempre hace lo mismo


Y si nos pones la estructura de tu tabla y como es que estas haciendo el insertado de información?

Igual y con eso podemos hacer un ejemplo por aca y ver como hecharlo andar....