¿Cómo encontrar un texto o palabra dentro de todas las funciones, procedimientos, disparadores y otros objetos en Oracle?

A veces nos vemos en la necesidad de saber dónde hacemos uso de un nombre de una tabla, función, variable, campo o un simple texto dentro del código fuente de los diferentes objectos de la base de datos Oracle.

Para localizar dónde se usa cierto nombre, palabra o texto podemos ejecutar la siguiente sentencia con el usuario SYS preferentemente:

En el ejemplo anterior estamos buscando el texto o palabra “VENTAS” dentro de todos los códigos fuente que definen los objectos de Oracle, como son procedimientos, funciones, disparadores.

Si encuentra la palabra buscada la consulta nos  como resultado el propietario, nombre de objeto, tipo del objeto, la linea donde encontró el texto y el texto completo de la linea.

Espero y les sea útil. ¡Hasta pronto!

shp2pgsql: el programa no puede iniciarse porque falta libiconv~2.dll

Hola a todos.

¿Te sucede que al ejecutar la utilería de postgis shp2pgsql, en la consola ms-dos de windows, te manda el siguiente mensaje de error?

Esto sucede con algunas versiones superiores a postgresql/postgis 9.2; debido a que las librerías .dll que necesita este programita ya no están más en el directorio bin de la carpeta de instalación de postgresql.

Ahora se encuentran esos .dll dentro de directorio bin/postgisgui dentro de la misma carpeta de instalación de postgresql.

Para solucionar el error, basta con agregar a tu variable de ambiente PATH este directorio, abrir una nueva ventana de consola de ms-dos y volver a ejecutar desde ahí el comando.

¡A convertir shapefiles a postgresql/postgis!

 

Obtener año, mes o día de un campo fecha en Oracle con EXTRACT.

A veces es necesario obtener sólo una parte de una fecha de un campo tipo datetime en sentencias SQL en Oracle. En un post pasado se explicó como obtener sólo el año, mes o día con la función to_char(). Ahora vamos a ver cómo obtener los mismos datos pero con la función extract().

En el ejemplo siguiente vamos a ver como obtener el día, mes o año de la fecha actual de la base de datos oracle:

A diferencia de la función to_char() que regresa un tipo caracter o alfanumérico, la función extract() regresa el resultado de tipo numérico.

La función extract() también puede extraer la hora, minuto y segundo de un dato tipo datetime:

¡Espero y les sea útil!

 

MySQL: table is marked as crashed and should be repaired

Después de una falla de energía del servidor de aplicaciones, nuestro sistema administrativo comenzó a enviar el error “table is marked as crashed and should be repaired” al querer acceder a cierta tabla de nuestra base datos.

Antes de restaurar dicha tabla desde un respaldo probamos reparar la tabla con la instrucción SQL de MySQL llamada “repair table” desde un cliente SQL de esta forma:

REPAIR TABLE nombre_tabla;

Donde “nombre_tabla” es el nombre de la tabla que esta enviando el error.

Esto funcionó en nuestro caso y no tuvimos necesidad de restaurar la table dañada desde un respaldo.

¡No olviden visitar a los patrocinadores (anuncios de google)!

 

psql version 8.4, server version 9.3. Some psql features might not work. CentOS 6.x

Si recibes este mensaje mientras tratas de ejecutar el programa cliente psql para conectarte a postgresql 9.3, es debido a un conflicto de versiones. CentOS 6 lleva por defecto con las utilitarias de conexión de la versión 8.4 y al instalar una versión más actual como la 9.3 puede surgir este conflicto.

Para solucionar este problema sigue los siguientes pasos (a mi me funcionó):

Listamos los paquetes que tenemos instalados de postgresql:

Como se puede observar en mi caso, tenemos paquetes de la versión antigua 8.4.x. Procedemos a desinstalar dichos paquetes (yo estoy seguro que no estoy usando la versión 8) con un usuario con derechos administrativos (yo uso el usuario root):

Una vez esto hecho, si intentamos ejecutar el  programa cliente psql no funcionará, porque el psql por defecto fue desinstalado y el sistema no lo hallará en la ruta de ejecutables:

Por lo tanto procedemos con el siguiente comando:

Una vez realizada la ejecución del comando, entramos con cualquier otro usuario y ejecutamos el programa psql para comprobar que el mensaje ha desaparecido:

¡No olvides visitar a los patrocinadores dando un clic en los anuncios! ¡Me ayudaras a conservar este sitio! ¡Gracias!

 

ORA-32033: unsupported column aliasing

Oracle arroja este error cuando se utiliza WITH en alguna consulta y se ha olvidado poner la palabra reservada AS. Por ejemplo en este caso:

Lo correcto sería:

No olvides visitar a los patrocinadores (da click en los anuncios) para seguir soportando este sitio.

¡Gracias!

Instalación Postgres.app: comando psql de Postgresql, no funciona en Mac OS X.

Si después de instalar postgresql, con los paquetes de Postgres.app  en tu sistema Mac OS X , no te funciona el comando psql; es que probablemente aún no hayas agregado el directorio bin de Potgresql en tu variable de ambiente PATH.

Para resolver el problema, abre y edita el archivo .bash_profile que se encuentra en tu directorio raíz y agrega la siguiente línea al final (la ruta del directorio bin de Postgresql puede variar de acuerdo a la versión instalada; se ejemplifica la versión 9.4) y guárdalo:

Una vez terminada la edición de archivo, reinicia la máquina, abre una terminal y ya podrás usar el comando psql.

Aquí puedes encontrar la fuente original

PostgresAppIconLarge

¡Espero y les sea útil!

Listar las tablas de un usuario en Oracle

A veces necesitamos saber las tablas pertenecientes a un usuario y/o esquema en Oracle. Si queremos saber las tablas que le pertenecen al usuario con el que cual nos encontramos conectados actualmente a la base de datos, usamos la siguiente instrucción sql:

La instrucción anterior además ordena la salida por el campo table_name.

Si lo que queremos saber son las tablas de otro usuario o esquema entonces usaríamos la siguiente sentencia sql:

Igual que la anterior, el resultado lo ordenamos por table_name.

Espero que les sea útil este post.

¡Saludos!

Problemas de instalación de la nueva version Postgis 2.1.8 en Ubuntu

La última actualización automática de Postgis 2.1.8 falló de pronto en Ubuntu, no la instalaba y marcaba un error.

Al tratar de instalarla manualmente a través de apt-get mostraba una serie de errores, entre ellos uno que decía que no podía sobreescribir una librería, ya que la versión 2.1.7 del paquete liblwgeom también usaba dicha librería:

Buscando en internet la solución, ya que mis bases de datos habían quedado no funcionales, encontré la solución en este artículo.

En mi caso, ejecutando el siguiente par de sentencias o comandos resolvieron el problemas de instalación:

Espero y les sirva. ¡Saludos!

Pentaho Report Designer 5.4: parametrización sql avanzada.

Utilizamos el software open source Pentaho report designer 5.4 en el trabajo diario para crear reportes que luego publicamos en el servidor de reportes biserver-ce del mismo fabricante.

Recientemente nos vimos en la necesidad de crear consultas sql dinámicas en donde el parámetro a pasar el reporte fuera el nombre de la tabla a consultar. Habíamos creado otros reportes con parámetros dónde lo que pasábamos eran valores de columnas por los que queríamos filtrar los datos, pero esta técnica no funcionó cuando el parámetro representaba el nombre de la tabla.

Nos fuimos a la documentación de este software y no estaba muy clara, ya que omitía varios pasos que en el siguiente video les comparto.

Espero que les sea útil.

¡Saludos!