sql >> Base de Datos >  >> RDS >> Oracle

¿Herramientas para trabajar con procedimientos almacenados en Oracle, en equipo?

No estoy seguro de si el posteador original todavía está monitoreando esto, pero haré la pregunta de todos modos.

La publicación original solicitaba poder:

Para "bloquear" automáticamente el procedimiento actual con el que está trabajando, nadie más en el equipo puede hacer cambios hasta que termine.

Tal vez el problema aquí sea más de paradigma de desarrollo que de la incapacidad de un producto para "bloquear" el proceso almacenado. Cada vez que escucho "Quiero bloquear esto para que nadie más lo cambie", inmediatamente tengo la sensación de que las personas comparten un esquema y todos se desarrollan en el mismo espacio.

Si este es el caso, ¿por qué no dejar que todos tengan su propio esquema con una copia del modelo de datos? Lo digo en serio amigos, no "cuesta" nada crear otro esquema. De esa manera, cada desarrollador puede hacer cambios hasta que estén tristes sin afectar a nadie más.

Otro truco que usé en el pasado (en equipos pequeños) cuando no era factible permitir que cada desarrollador tuviera su propia copia de los datos debido al tamaño, era tener un esquema maestro con todas las tablas y el código, con sinónimos públicos que lo señalan todo. Luego, si el desarrollador quiere trabajar en un proceso almacenado, simplemente lo crea en su esquema. De esa manera, la resolución de nombres de Oracle encuentra ese primero en lugar de la copia en el esquema maestro, lo que les permite probar su código sin afectar a nadie más. Esto tiene sus inconvenientes, pero este fue un caso muy específico en el que pudimos vivir con ellos. Obviamente, NUNCA implementaría algo como esto en producción.

En cuanto al segundo requisito:

Para enviar automáticamente los cambios que realice en el procedimiento almacenado, en una base de datos Oracle, a un repositorio de Subversion, CVS,...

Me sorprendería encontrar herramientas lo suficientemente inteligentes como para hacer esto (tal vez una oportunidad :). Tendría que conectarse a su base de datos, consultar el diccionario de datos (USER_SOURCE) y extraer el texto asociado. Una tarea difícil para los sistemas de control de código fuente donde se basan casi universalmente en archivos.