| ||||
Respuesta: cursores y trigger Cita: ¿Un ALTER TABLE o un UPDATE?hacer es un trigger que realice un alter table a tabla2 No deben hacerse operaciones DDL en rutinas lamacenadas, ¿lo tienes claro?
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
Respuesta: cursores y trigger eske el trigger se activa con un update... lo que necesito es que el trigger actualice los campos de la tabla2 con la informacion de la tabla1, porque al actualisarce tabla1 se debe modificar tabla2 en cuanto a la longitud que establecen en tabla1... es decir si nombre empleado es varchar de 30 en tabla 1 dira nombre empleado 30 y si en tabla 1 se modifica nombre empleado 60 en tabla 2 el campo de nombre empleado medira 60 y sii solo es 1 ves pero no se como mandar traer el 60 de tabla 1 para hacer el alter table para tabla 2 ALTER TABLE tTICKET MODIFY( Id_Tienda varchar2(4) null, Id_Fecha date null, Id_Turno varchar2(1) null, Codigo_Barras varchar2(13) null, Venta_Bruta varchar2(13) null); en ves de ke sea asi debe ser algo asi ALTER TABLE tTICKET MODIFY( Id_Tienda varchar2(datos de tabla1) null, Id_Fecha date null, Id_Turno varchar2(datos de tabla1) null, Codigo_Barras varchar2(datos de tabla1) null, Venta_Bruta varchar2(datos de tabla1) null); pero no se como hacer lo de datos de tabla 1 para poder compararlas y ke me arroje el valor ke tiene para ese campo porke podria modificarla pero tomaria solo el primer valor |
| ||||
Respuesta: cursores y trigger Estás plantando una idea equivocada. No se deben modificar una estructura dinámicamente, sino que debes analizar el dominio del dato y darle a la columna el tamaño máximo necesario para el peor de todos los casos.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
Respuesta: cursores y trigger osea ke tabla2 debe en su campo Id_Tienda varchar2(4) entonces plantearse como Id_Tienda varchar2(500) por decir algo? no se puede modificar la tabla? porque? porque dices que es erroneo? no entiendo comprende soy nueva en esto. |
| ||||
Respuesta: cursores y trigger Cita: Mas o menos, aunque lo que se hace en diseño de datos es estimar la longitud del dato, y luego indicar esa restricción a los programadores para que no permitan que el usuario ingrese cualquier cosa.osea ke tabla2 debe en su campo Id_Tienda varchar2(4) entonces plantearse como Id_Tienda varchar2(500) por decir algo? A nivel de programación esta es una validación que siempre existe, lo habrás visto en cualquier sitio, ya que no se debe permitir jamás ingresar datos inválidos. Cita: No se debe modificar una estructura de tablas, a menos que sea por requirimietnos muy específicos, y sólo si es estrictamente necesario.no se puede modificar la tabla? porque? porque dices que es erroneo? no entiendo comprende soy nueva en esto. Un modelo de datos es un modelo físico, Todo lo que pones en esl son estructuras permanentes, y deben responder la las necesidades del sistema que alimentan. Si permites que una estructura de BBDD se modifique dinámicamente, tarde o temprano perderás el control de la estructura, y tendrás, por ejemplo, backups oinconsistentes con las bases de datos. Cada vez que modificas una tabla se reescribe completa, afectas los índices, y si está relacionada, esas relaciones deben reescribirse. Estás afectando no sólo la performance del sistema, sino su estabilidad. Uno de los primeros conceptos que te enseñan cuando estudias es que el modelo físico de datos debe ser: 1) Independiente de la arquitectura de software (sin acoplamiento con la aplicación) 2) Flexible a cualquier consulta (debe responder a cualquier consulta del sistema). 3) Adaptable a cambios de entorno (abstraerse del entorno ). 4) Estable y consistente (protección de consistencia e itegridad de datos). ¿Cuándo se modifica una tabla? Cuando valores críticos para el sistema son cambiados por el entorno. Por ejemplo: Si la codificación telefónica pasa de un máximo de siete dígitos urbanos a ocho, eso es un cambio grande. Pero para eso tienes el conocimietno que el sistema telefónico mundial no usa más de catorce dígitos, por lo cual creas la columna directamnete como un VARCHAR2(15) y listo. Otro caso sería un cambio de codificación postal: de cuatro digitos, a ocho alfanumérico (pasó en Argentina). Eso mofdifica el largo del campo, pero son cambios muy raros, muy poco habituales. En el caso de los nombres, simplemente la pregutna es: ¿Cuál es el nombre de empresa más largo que conoces? ¿250 caracteres? ¿270? Bueno, le pones eso. ¿En nombres de personas? Tal vez 150 o 180 caracteres. No es tan difícil de ver. Simplemente le pones el dato que requiere ese dominio (universo de represntación de un mismo atributo) y listo. Pero no dejas que se cambie porque si. ¿Se entiende?
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
Respuesta: cursores y trigger Postea la query usada. Si no vemos lo que escribistees difícil saberlo. Por otro lado no te olvides que en ciertas instalaciones, Oracle peude se sensible a mayusculas/minusculas.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
Respuesta: cursores y trigger mira mi codigo es este
Código SQL:
Ver original Última edición por gnzsoloyo; 29/04/2014 a las 15:04 |
| ||||
Respuesta: cursores y trigger Hola lawlieth_kain Esta parte: UPDATE TABLE Ttam_tic esta mal. Debe ser UPDATE Ttam_tic Sobra la palabra TABLE en la sentencia UPDATE. Con respecto a tu pregunta inicial, estoy deacuerdo con gnzsoloyo. Ademas para eso existe el tipo de dato VARCHAR que significa char de dimension variable. lo que indica que una cadena VARCHAR2(10) puede ser desde 1 hasta 10 de forma variable. No reserva el espacio completo para la cadena. Mi recomendación es que utilices un espacio mas grande y no te preocupes por volver a calcular eso. Es muchisimo mas costoso para la base de datos. saludos
__________________ Without data, You are another person with an opinion. W. Edwads Deming |
Etiquetas: |