He leído un artículo que me ha parecido muy interesante en OraFaq sobre la monitorización de cursores abiertos y cacheados.
Monitoring Open and Cached Cursors, de Natalka Roshak
Borrado en cascada
Hace poco necesité un script que me eliminase una tabla, y, antes de ella,todas las tablas de las que aquella dependiesen y antes que estas las que dependan de ellas, y así hasta el infinito.
El siguiente problema es el orden de eliminación, pero si utilizamos la opcion CASCADE CONSTRAINTS en el drop, el problema desaparece.
Comparando esquemas
En mi empresa, diseñamos la base de datos con designer y luego generamos el esquema en la base de datos.Siempre llega un punto del desarrollo en que es bastante incómodo borrar el esquema y volver a generarlo, sobretodo por volver a llenar las tablas. A partir de ese momento tratamos siempre de sincronizar lo que tenemos en designer con lo que vamos volcando en la bd. Sin embargo esta sincronización es… humana.
Continue reading »
Creando un usuario rápido
Este es un script que utilizo para crear usuarios rápido.
Es fácilmente modificable para agregar las pijadicas que a cada uno le gusten.
Presupone que estás conectado con un usuario dba.
Saca primero los tablespaces y el espacio libre de cada uno. Luego pregunta por el nuevo usuario y los tablespaces que utilizará. Se puede modificar para agregar más tablespaces, pero para algo rápido, con uno suele ser suficiente.
Por último, después de crearlo, te muestra los roles del sistema y te pide lo que les quieres asignar.
Continue reading »
Compilando con ORACLE iAS (II)
Al final he conseguido compilar. La verdad es que la solución me ha dejado un poco flipao. Resulta que parece que hay un bug que aún no han resuelto y es que para compilar hace falta que haya un servidor de ventanas en la red. No es que se vaya a abrir una ventana ni un interface visual. Es simplemente que el f90genm no compila sin servidor de ventana. El f90gen (a secas) no he conseguido que funcione.
He plagiado el shell script de oracle y me he hecho otro con las variables de entorno que he necesitado.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #!/bin/bash # Script para compilar módulos con f90genm # # Variables de entorno. # Omito ORACLE_PATH porque debería estar predefinida en el sistema tras la instalación export DISPLAY=<ip o nombre de la máquina con el xhost>:0.0 export FORMS90_PATH=<Directorios donde están los módulos> export TWO_TASK=<Cadena de conexión> export ORACLE_SID=<SID de conexión> export ORACLE_AUTOREG=$ORACLE_HOME/ # Para LD_LIBRARY_PATH es importante que $ORACLE_HOME/lib esté en primer lugar. Lo dicen en radio foro export LD_LIBRARY_PATH=$ORACLE_HOME/lib: # Otro buen consejo de radio foro export ORACLE_TERM=<Terminal de unix. Está definido en las variables de entorno> f90genm $* |
Es curioso que algunas de las cosas más útiles las aprendes después de llevar mucho tiempo en la profesión. Cuando trabajas con ese Santo programa, el plus, y haces una select de veinte registros te salen los títulos repetidos todo el rato. Y entonces te acuerdas de que no has hecho el set pages de mi alma. Pues, como digo, no fue hasta bastante tiempo de iniciar mi andadura bajo los designios de San Oracle, que me fue revelado que si pones un fichero llamado Login.sql en el mismo directorio donde se inicia sqlplus, los comandos que contienen se ejecutan después de hacer login.
Para mi fue un momento glorioso. Y puse mi set pages, mi set timing on e incluso una select que me decía si estaba en desarrollo o en producción.
He aquí una copia de mi login.sql…
Continue reading »
Localizar errores
Este es un script que tengo para ver el lugar exacto de una línea de código en un procedimiento, función o paquete almacenado. Especialmente útil para cuando estás compilando y te da un fallo en la linea x. El script te muestra las cinco líneas anteriores, la linea solicitada y las cinco posteriores. Como veréis es una chorrada, pero hace su función..
Continue reading »