Le he echado un vistazo al artículo Export ADF Table To Excel de iAdvise y he conseguido reproducirlo. Para el ejemplo he usado la tabla EMPLOYEES del esquema HE que viene con la instalación de Oracle XE, pero como veréis sirve cualquier tabla.
Continue reading »
Uno de los primeros problemas con los que te encuentras al comenzar a desarrollar con ADF sobre tomcat es el odiado “Exception in thread “TP-Processor2″ java.lang.OutOfMemoryError: PermGen space”. Encontre alguien a quien le pasaba lo mismo que a mi en Tomcat – User. La solución la encontré en la página de Sun sobre las opciones de la máquina virutal y pasa por agregar a JAVA_OPTS una opción donde se indique el máximo de memora que usará el servidor en el catalina.sh:
JAVA_OPTS="-XX:+PrintGCDetails -XX:MaxPermSize=500m"
He encontrado un artículo interesante que explica una forma sencilla de exportar una tabla ADF cualquiera a excel. Aún no lo he probado pero me lo encolo porque tiene buena pinta: Export ADF Table To Excel.
Oracle ha plublicado recientemente un interesante (y extenso) documento sobre cómo implementar las reglas de negocio en ADF BC. Da un paseo por el modelador de UML y por las potencialidades de los objetos de vista. Explica también cómo definir dominios para campos, cómo programar validadores, reglas para operaciones dml, gestión de mensajes de error, etc. Un guía muy completa: Business Rules in ADF BC.
Cuando sabemos que dados unos parámetros una función devolverá siempre lo mismo deberíamos utilizar la expresión DETERMINISTC. Este hint le va a permitir al optimizador de Oracle evitar hacer llamadas redundantes a la función. Sólo se puede garantizar que una función devolverá lo mismo dados unos parámetros cuando no dependa de variables de sesión (como sysdate) y otros objetos de la base de datos (llamadas a funciones no deterministic o consultas). El caso más simple y más común es una función que devuelva el valor de una constante. También son comunes funciones de operaciones aritméticas o de concatenación.
Continue reading »
Muchas veces necesito saber qué registros de una tabla tienen valores no numéricos en un campo varchar. Normalmente me hago una función en un paquete y la utilizo en la select que toque:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | FUNCTION esCadenaNumerica( vCadena VARCHAR2 ) RETURN VARCHAR2 IS ------------ -- Variables ------------ nTonta NUMBER; BEGIN nTonta := TO_NUMBER( vCadena ); -- Si llego hasta aquí es que el número es válido. RETURN 'TRUE'; EXCEPTION WHEN VALUE_ERROR THEN -- El número no es válido. RETURN 'FALSE'; END; |
Debo admitir que yo era de los que pensaban que hacer un SELECT COUNT(’D') consumía menos recursos que un SELECT COUNT(*). El semidiox Tom me ha abierto los ojos. Es lo mismico, tal como puede leerse en una de sus respuestas: Difference between count(1) and count(*).
Oracle ha publicado recientemente un artícuo de Frank sobre cómo implementar con ADF un servicio web que devuelva tipos complejos: Using Web Services with Complex Return Types in ADF.
Uniendo el script que obtiene las tablas que apuntan a una con la utilidad del todopoderoso paquete DMBS_METADATA me he hecho otro script que me obtiene el ddl de las claves foráneas que apuntan a una tabla determinada. Continue reading »
Este es un script para obtener un listado con las claves foráneas que apuntan a la tabla que le pasan como parámetro. Es útil si tenemos la buena costumbre de nombrar las claves con algún sufijo o prefijo que nos indiquen el tipo. Si no, sería necesario agregar más columnas a la select. Continue reading »