Archivos en la Categoría 'Bases de datos'

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

Disponible PostgreSQL 9.1

El pasado domingo el hombre dio un pequeño paso, pero la humanidad ha dado un paso gigantesco. Se ha liberado la versión 9.1 de PostgreSQL. Esta version contiene funcionalidades mejoradas y algunas cosas interesantes como: Writeable Common Table Expressions (wCTE)o una Poderosa Búsqueda de Similitudes Usando el Método de Indexado de los K Vecinos Más Próximos (K-Nearest-Neighbor, KNN).

Más información y enlace de descarga | Barrapunto

Disponible una nueva versión de Oracle SQL Developer

Desde el 29 de Marzo se encuentra disponible una nueva descarga de SQLDeveloper. Puedes consultar la lista de cambios en el siguiente enlace. Para quienes nunca hayan usado esta aplicación, la descarga es gratuita pero requiere que te registres en la web de Oracle. Aqui un pequeño resumen de como instalarlo en Ubuntu, basado en el enlace publicado por Espero que te sirva.

1) Descargamos SQL Developer

2) Como root descomprimimos en /opt por ejemplo

$ sudo unzip -q sqldeveloper-3.0.04.34-no-jre.zip -d /opt

3) Entramos en sqldeveloper y damos permisos de ejecucion a sqldeveloper.sh

$ chmod +x sqldeveloper.sh

4) Editamos la primera linea de sqldeveloper.sh y ponemos:

cd /opt/sqldeveloper/sqldeveloper/bin && bash sqldeveloper $*

o la ruta que hayamos usado para instalar.

5) Creamos una ligadura a este directorio en el directorio /usr/bin de la forma:

sudo ln -s /opt/sqldeveloper/sqldeveloper.sh /usr/bin/sqldeveloper

6) La aplicacion necesita de java para funcionar. Si tenemos bien definido la variable de entorno JAVA_HOME(export | grep JAVA_HOME) no habra problemas, en otro caso podemos ejecutar: update-alternatives –list java para ver los java instalados. Elegimos el adecuado y editamos el archivo sqldeveloper/sqldeveloper/bin/sqldeveloper.conf para indicar la ruta.En mi caso:

SetJavaHome /usr/lib/jvm/java-6-sun/jre

7) Ahora creamos una entrada en el menu Aplicaciones:
Para ello creamos en /usr/share/applications un archivo sqldeveloper.desktop con el siguiente contenidos:

[Desktop Entry]
Encoding=UTF-8
Name=SQL Developer
Comment=Oracle SQL Developer
Categories=Development;
Hidden=false
Icon=/opt/sqldeveloper/icon.png
Exec=sqldeveloper
Terminal=false
Type=Application



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
junio 2013
L M X J V S D
« may    
 12
3456789
10111213141516
17181920212223
24252627282930

Blog Stats

  • 24,608,253 hits

Seguir

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

Únete a otros 903 seguidores