Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

tabla inaccesible tras alter table

Estas en el tema de tabla inaccesible tras alter table en el foro de Oracle en Foros del Web. Muy buenas, soy nuevo en esto, a ver si alguien puede ayudarme. Necesito agregar una columna NULL a una tabla cuyo owner es oradmin. Tengo ...
  #1 (permalink)  
Antiguo 06/01/2010, 07:26
 
Fecha de Ingreso: enero-2010
Mensajes: 7
Antigüedad: 14 años, 10 meses
Puntos: 0
tabla inaccesible tras alter table

Muy buenas, soy nuevo en esto, a ver si alguien puede ayudarme.
Necesito agregar una columna NULL a una tabla cuyo owner es oradmin. Tengo claro que debería ejecutar esta instrucción con el usuario oradmin:

ALTER TABLE nombre_tabla add colunm_name int NULL

La cosa es que me han dicho que ejecutando esta instrucción, esta tabla quedaría inaccesible por la aplicación o por los demás usuarios de la bbdd. Sabeís que tendría que hacer y por qué?? dar permisos con GRANT a los demás usuarios o a oradmin?? o a los roles?? estoy bastante perdido, por favor si alguien puede ayudarme, estaré muy agradecido.

Saludos
  #2 (permalink)  
Antiguo 06/01/2010, 11:08
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 5 meses
Puntos: 43
Respuesta: tabla inaccesible tras alter table

Te han engañado.
Despues de hacer el alter table, la tabla quedará igual de accesible que estaba antes.

EDITO : De todas maneras, antes de hacer una pregunta tan simple como está, podrías haberlo probado tu mismo con una tabla de usar y tirar, ¿ no ?
  #3 (permalink)  
Antiguo 07/01/2010, 10:14
 
Fecha de Ingreso: enero-2010
Mensajes: 7
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: tabla inaccesible tras alter table

buenas de nuevo,

no me han engañado, ya he dado con la solución.
El problema estaba que el objeto tabla al que habia que añadirle la columna, esta referenciado por una vista del mismo owner, y a su vez esta vista estaba referenciada por un sinonimo con owner publico, accesible para todos los usuarios de la bbdd.

Al añadirle una columna a la tabla, habia que volver a recrear la vista, para que así todos los usuarios puedan tener acceso a la "tabla" mediante el sinonimo.

En el manual de oracle versión 9 aparece una nota que dice que hay que tener precaución al alterar una tabla si esta esta referenciada por otros objetos.

Efectivamente podría haberlo probado con una tabla de usar y tirar, pero si no lo he hecho, es porque no me dejaban.

Saludos y gracias.
  #4 (permalink)  
Antiguo 08/01/2010, 03:34
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 5 meses
Puntos: 43
Respuesta: tabla inaccesible tras alter table

Cita:
Iniciado por royer45 Ver Mensaje
buenas de nuevo,

no me han engañado, ya he dado con la solución.
El problema estaba que el objeto tabla al que habia que añadirle la columna, esta referenciado por una vista del mismo owner, y a su vez esta vista estaba referenciada por un sinonimo con owner publico, accesible para todos los usuarios de la bbdd.

Al añadirle una columna a la tabla, habia que volver a recrear la vista, para que así todos los usuarios puedan tener acceso a la "tabla" mediante el sinonimo.

En el manual de oracle versión 9 aparece una nota que dice que hay que tener precaución al alterar una tabla si esta esta referenciada por otros objetos.

Efectivamente podría haberlo probado con una tabla de usar y tirar, pero si no lo he hecho, es porque no me dejaban.

Saludos y gracias.
Pues tal vez, ( solo tal vez ) podrías haber puesto en el primer post esto que aclaras ahora, hubieramos ahorrado algo de tiempo.
Pero ya que estamos, esto que pones no es del todo correcto. Al añadir un campo a una tabla no tienes porque recrear una vista que acceda a esa tabla, a no ser que quieras que la vista contenga el nuevo campo. Al hacer el ALTER TABLE automaticamente la vista se descompila ( Se queda en STATUS = INVALID ), pero con un simple ALTER VIEW XXXXXX COMPILE, lo arreglas, e incluso es posible que ni siquiera lo tengas que hacer. Al acceder a un objeto que está descompilado Oracle automaticamente intenta recompilarlo si puede, eso es totalmente transparente y si no puede, te salta un error.

¿ No te dejaban hacer pruebas ?, luego te exigirán buenos resultados ¿ no ?
  #5 (permalink)  
Antiguo 10/01/2010, 10:30
 
Fecha de Ingreso: enero-2010
Mensajes: 7
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: tabla inaccesible tras alter table

lo probé cuando me dijeron la solución. y efectivamente, después de insertar el campo en la tabla, y luego cambiar de usuario a sys, no podía acceder mediante el sinonimo, que es el objeto por donde todos los usuarios acceden al contenido de la tabla. La solución era recrear la vista.

muchas gracias.

Etiquetas: table, tras, tablas, alterar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:55.