Archive for the 'Bases de datos' Category

RoboMongo: Herramienta de administración para MongoDB

robomongo

Si trabajas con la base de datos MongoDB, puede que ésta utilidad te sea de interes. Disponible para Windows, Linux y Mac te permite trabajar más comodamente desde una GUI y administrar la base de datos. Puedes descargarla desde el siguiente enlace. Escribi un articulo sobre MongoDB hace algún tiempo pero hay tambien muy buena documentación en el sitio principal.

Relacionado | Una introducción a MongoDB

Ejecutar PLSQL desde shell script y guardar los resultados en variables

oracle

En dbaspot encuentro un buen ejemplo de script de como ejecutar un procedimiento PLSQL desde bash y como almacenar los resultados de las consultas en variables. Éste seria un ejemplo (adaptado para usar mi base de datos Oracle XE):


#!/bin/bash

#OUTPUT=$(sqlplus -s '/ as sysdba' <<-EOF
OUTPUT=$(sqlplus -s system/manager@XE <<-EOF
set heading off feedback off serveroutput on trimout on pagesize 0

select instance_name from v\$instance;
select version from v\$instance;

declare
i number := 0;
begin
while i < 3 loop
dbms_output.put_line('Parametro_PLSQL_' || i);
i := i+1;
end loop;
end;
/
EOF
)

# Sin dejar espacios pq los espacios son los nuevos parametros

INSTANCE=$(echo $OUTPUT | awk '{ print $1 }')
VERSION=$(echo $OUTPUT | awk '{ print $2 }')
ARG1=$(echo $OUTPUT | awk '{ print $3 }')
ARG2=$(echo $OUTPUT | awk '{ print $4 }')
ARG3=$(echo $OUTPUT | awk '{ print $5 }')

echo "Database: $INSTANCE":wr
echo "Version: $VERSION"
echo "Arg1: $ARG1"
echo "Arg2: $ARG2"
echo "Arg3: $ARG3"

Aqui puedes adaptarlo para tus propios ejemplos. Lo más importante la cadena de conexión, yo al usar Oracle XE tengo (system/manager@XE), en tu base de datos pon tu cadena usuario/password@SID. Despues que tambien los parametros devueltos no tengan espacios, pues al asignarlos a variables, el espacio es utilizado como separador. En el script hay una parte donde se devuelve una columna directamente de una select y esta es asignada a una variable de la shell, y otra parte donde se escribe el parametro con el paquete dbms_output.

Seleccionar un registro aleatoriamente en Oracle

Digamos que quieres recuperar una columna de una tabla pero a partir de una fila recuperada aleatoriamente para tal vez hacer pruebas de tu código. Fácil, puedes ejecutar algo como lo siguiente:

SELECT column FROM
( SELECT column FROM table
ORDER BY dbms_random.value )
WHERE rownum = 1

Visto en | Pete freitag

jCodeCollector: Guarda tus “snippets” y no pierdas nada!!

Si eres desarrollador seguro que tienes cientos de trozos de código, scripts, o sentencias SQL que utilizas habitualmente y que en el momento que mas lo necesitas, nunca encuentras. Eso se puede acabar si utilizas alguna herramienta como jCodeCollector, que con una interfaz bastante intuitiva te permite crear categorias y organizar tus snippets de una manera sencilla.

La aplicacion es Multiplataforma (Mac, Win, Linux) y requiere de java para su funcionamiento. Puedes descargarla desde el sitio oficial.

Relacionado | 10 aplicaciones “free” de Escritorio para guardar tus snippets

OPENLIBRA: La biblioteca libre online que estabas esperando

¿Buscas algun libro tecnico para aprender a programar en algun lenguaje?. ¿Te gustaria diseñar tu propio videojuego? O en cambio te interesa algun ensayo, revista o novela. Pues echale un vistazo a OpenLibra, podras encontrar muchos tutoriales, manuales y PDFs que circulan por la red, pero categorizados y con un facil acceso.

Enlace | OPENLIBRA (gracias Mikel!! por el dato)

Dbeaver 1.5.1

Hace algun tiempo hable de Dbeaver. Pues bien, La version 1.5.1 ya se encuentra disponible con los siguiente cambios:

  • Content assistant configuration added in Preferences
  • Metadata editor fixes (database/table creation)
  • Table data editor fix (problems with auto-generated keys in MS SQL)
  • Error messages and localization fixes
  • Performance optimization
  • Main menu was updated (SQL editor related menus were moved)
  • Minor UI fixes

Por cierto: ¿Cual es tu cliente SQL preferido?

Enlace | Dbeaver

PySQL: Un sqlplus mejor que sqlplus

Me gustan los clientes graficos SQL (Ejemplo: Dbeaver o Squirrel) pero no siempre podemos usarlos, y tenemos que usar un cliente de consola. En el caso de Oracle, el amo es “sqlplus”, muchas veces “amado” u “odiado” por otros. Pero si usas Python, Oracle y tienes instalado cx_Oracle (ver entrada anterior) tu experiencia puede ser mas agradable si usas PySQL (como siempre, cuestion de gustos). PySQL es un interprete de comandos para Oracle que puede ser un reemplazo completo de SQLPlus.

Para instalarlo, descargate los fuentes, descomprimelos y al igual que la instalacion de otros modulos para python:

$ sudo python setup.py install

Despues ya podremos ejecutar:

$ pysql <user>/<pass>@<servicio> para conectar

Enlace | Pantallazos | Lxnet

Conectar a Oracle desde Python (incluye compilación de cx_Oracle)

La conexion a una base de datos Oracle desde python se simplifica mucho si utilizamos un modulo como cx_Oracle. En el siguiente tutorial veremos los pasos para instalarlo y un breve ejemplo de conexión. Nota: en la pagina de cx_Oracle ya hay versiones precompiladas para Windows y Red hat, de manera que si utilizamos esas plataformas podriamos instalar el modulo directamente, de todas formas en este tutorial se comentara el caso desde 0.

INSTALACION DE CX_ORACLE

Si estamos utilizando un servidor de Oracle (como en el post anterior) no es necesario la instalación de un cliente de Oracle, pues ya va incluido, En otro caso tenemos que crearnos una cuenta en Oracle y descargarnos el cliente de Oracle.

En mi caso y en este ejemplo probe descargando la version ORACLE 11 para Linux 32. Son varios ficheros, debes descargarte aquellos ficheros que contienen en su nombre: basic, sdk y sqlplus. Los pasos ahora son simples:

- Descomprime los ficheros: basic , sdk y sqlplus

copia la carpeta que se crea a /etc/oracle/instant_client_11_2

Dentro crea las siguientes ligaduras:

# ln -s libclntsh.so.11.1 libclntsh.so
# ln -s libclntsh.so.11.1 libclntsh.dylib

si no creas estos enlaces, luego al intentar compilar cx_Oracle dara un error: /usr/bin/ld: cannot find -lclntsh

Ahora tenemos que actualizar las referencias a la libreras compartidas. Creamos el fichero /etc/ld.so.conf.d/oracle.conf con la siguiente línea:

/opt/oracle/instantclient_11_2

Y actualizamos:

ldconfig

si usas oracle server XE en cambio basta con insertar esta linea en este fichero:

root@ubuntu:~# cat /etc/ld.so.conf
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib

Y ejecutar tambien ldconfig (nota, en vez de 10.2.0 usa la version que hayas instalado).

Ahora insertamos en el profile del usuario y tambien como root (a la hora de compilar) ejecutamos:

export ORACLE_HOME="/opt/oracle/instantclient_11_2"
export DYLD_LIBRARY_PATH="$ORACLE_HOME"
export SQLPATH="$ORACLE_HOME"
export PATH="$PATH:$ORACLE_HOME"

Ya nos queda menos. antes de compilar “cx_Oracle” instalamos dependencias necesarias:

sudo apt-get install python-dev python-setuptools build-essential

Para evitarnos tambien el: libaio.so.1: cannot open shared object file: No such file or directory a la hora de ejecutar cx_Oracle

instalamos tambien la siguiente dependencia:

apt-get install libaio-dev

y ahora si, ya podemos compilarlo (para ello nos descargamos y compilamos los fuentes con pip):

apt-get install python-pip
pip install cx_Oracle

si todo es correcto podemos probar a importarlo desde python para comprobar que funciona:

$ python
$ import cx_Oracle
$ exit()

No deberia dar ningun error.

jose@ubuntu:~$ python
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:05:24)
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cx_Oracle
>>> exit()

Probando la conexion a ORACLE

Escribimos por ejemplo el siguiente codigo:

jose@ubuntu:~$ cat ORACLE.py

#!/usr/bin/python
import cx_Oracle
conn_str='HR/HR@127.0.0.1:1521/XE'
db_conn = cx_Oracle.connect(conn_str)
cursor = db_conn.cursor()
cursor.execute('SELECT * FROM countries')
registros = cursor.fetchall()
for r in registros:
  print str(r)

Que basicamente se conecta a la base de datos Oracle XE con el usuario HR, password HR que tenemos instalada en Local (si quieres conectar a otra base de datos Oracle cambia la cadena de conexion como corresponda) y ejecuta un select de la tabla Countries.
 

Consultando el API de cx_Oracle podremos obtener mas información de como ejecutar otro tipo de operaciones como insert, updates o deletes. Para ello recomiendo consultar los enlaces siguientes:

Enlaces sobre cx_ORACLE

- Conexion a Oracle desde Python
- Documentación de cx_Oracle
- Instalar cx_Oracle en Ubuntu y dos
- Como conectarse a Oracle desde Python

Relacionado:

- Instalar Oracle XE en Ubuntu

Instalar Oracle XE en Ubuntu

Iba a actualizar la entrada de como instalar Oracle pero he comprobado que mi entrada anterior de como instalar Oracle no ha envejecido mal, vamos, que es completamente aprovechable (salvando pequeños matices). Además tambien podemos obtener más información desde la web de Ubuntu.

Dbeaver – Cliente universal SQL (Multiplataforma) a lo “eclipse”, Veredicto: Me gusta

Le faltan muchas funcionalidades aún, pero no está mal, no está mal (Sorry, los interfaces Eclipse me pirran ^^). Dbeaver es un cliente SQL que mediante el correspondiente driver JDBC nos permite conectar a:

MySQL
Oracle
PostgreSQL
IBM DB2
Microsoft SQL Server
Sybase
ODBC
Java DB (Derby)
Firebird (Interbase)
HSQLDB
SQLite
Mimer
H2
IBM Informix
SAP MAX DB
Cache
Ingres
Linter

y a muchas mas…

Se puede ejecutar en Windows, Linux y Mac.
En el caso de usar Ubuntu, podeis descargarlo como paquete .deb desde su pagina oficial. Por cierto si a la hora de intentar conectar a una base de datos no tienes el driver JDBC el se lo descarga de internet (buena idea).

P.d: Le faltan algunas funciones, pero a caballo regalado…

Via | Ubuntu Geek | Pantallazos



The next version of Ubuntu is coming soon


¿Es compatible tu equipo con Ubuntu?


( Muchos fondos de pantalla, aqui )

DESCARGATE SCIFI LIFE

365 Dias de Soledad
Me debes los sueños, las promesas y las noches rotas. Me debes la paz, la sonrisa y la esperanza robadas. Me debes la sangre, las lágrimas y el sudor vertido. Me debes las noches vacías, los abrazos anhelados. Me debes un beso de ajenjo de tu amarga boca.

The Ubuntu Counter Project - user number # 11961
Geo Visitors Map
julio 2014
L M X J V S D
« jun    
 123456
78910111213
14151617181920
21222324252627
28293031  

Blog Stats

  • 26,579,132 hits

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 1.032 seguidores