Aug 24

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;

Continue reading »

Jul 31

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(*).

Jul 30

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.

Jul 26

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 »

Jul 25

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 »

Jul 24

Otra función interesante del paquete DBMS_METADATA es get_Granted_DDL. Tal como su nombre sugiere, te devuelve el código ddl de los permisos que tenga el usuario que le pasas como parámetro. Continue reading »

Jul 23

Para aquellos que utilizan el Toad(el lado oscuro de la fuerza) o similares nunca es un problema recuperar de la base de datos el ddl de una tabla o un paquete. Para los fanáticos del plus como yo puede ser algo tedioso. El código de los paquetes, funciones y procedimientos puedes obtenerlo de la vista ALL_SOURCE, el de las vistas de ALL_VIEWS y el de los triggers de ALL_TRIGGERS. A partir de la Oracle 9i hay una función que nos puede sacar el código ddl de cualquier objeto de tu esquema: DBMS_METADATA.get_DDL. Continue reading »

Jul 22

Nunca he llegado a memorizar la manera de hacer un TO_NUMBER cuando es necesario pasarle un formato. Sólo suelo tener que hacerlo cuando estoy parseando datos de alguna manera. Una carga de loader o algo así. El caso es que siempre pierdo un tiempo precioso buscando la documentación. Por si a alguien le pasa lo mismo, aquí está el enlace: Syntax - TO_NUMBER.

Jul 21

He introducido una mejora en el script que utilizo para describir tablas en el plus. En principio, tal como dije, me describe tablas del esquema en el que estoy. Esto lo hice así porque paso de estar todo el rato metiendo el nombre del usuario cuando, el 99,99% de los desc que hago son siempre de tablas o vistas del usuario con el que estoy conectado. Bueno, lo que he hecho es que el script se de cuenta de si lo que he escrito es un sinónimo. Continue reading »

Jul 20

Cuando creo una vista, me gusta ponerle comentarios a ella y también a sus columnas. Normalmente es un rollo porque tengo que copy-pastearme las columnas y luego ir haciendo el comment on column. Lo peor del copy-paste es que es muy fácil cometer errores inadvertidamente (y cambiarle los comentarios a otra tabla o cosas por el estilo). Por esto y por gandulería informática, me he hecho un script para ahorrame trabajo y errores. Continue reading »