Archivos para la Categoría 'Oracle'

La Comision Europea desaprueba la compra de Sun por parte de Oracle

Los reguladores antimonopolio de la Unión Europea han presentado sus quejas formales a la adquisición de Sun por parte de Oracle por el precio pactado de 7.400 millones de dólares, con un argumento claro: el peligro para MySQL.

La noticia completa en BarraPunto, ¿y tu que piensas?:

Solaris 10 10/09 Disponible

Oracle compra Sun

oracle

Pues al final el gato al agua, no se lo llevo IBM sino Oracle, quien ha adquirido a Sun por unos 7.400 millones de dólares (calderilla ^^). Ahora la pregunta que esta en el aire es:

¿Futuro negro para MySQL?

Mas informacion | FayerWayer

Tip: Ver todas las constraints en Oracle

Las restricciones o Constraints son un mecanismo de seguridad y proteccion en las bases de datos por ejemplo para evitar insertar valores nulos en determinados campos de la tabla o evitar la duplicidad erronea de filas. Si defines una clave primaria en una tabla, se activa la constraint correspondiente de manera que si intentas insertar una nueva fila cuya clave primaria coincide con una ya existente, salta la constraint correspondiente y el consiguiente error de oracle (o la base de datos que estes utilizando) avisandote de ello.

oracleconstraints

Si tienes un modelo de datos muy grande, que maneje muchas constraints es posible que en la depuracion de un programa exista un error de base de datos y conozcas el nombre de la constraint, pero no su regla (si es clave primaria, si es clave foranea, si la longitud debe ser mayor que un cierto valor, si el campo no debe ser null, etc).
Para facilitarte la busqueda de su significado tal vez te sea de interes la siguiente vista del diccionario de datos:

SELECT * FROM all_constraints

Apareceran todas las constraints del modelo (las tablas accesibles) y ya podras filtrar por nombre de la tabla (donde aplica la restriccion) o nombre de la constraint. Bueno, bonito y barato…

Mas informacion | All_constraints | Oracle

Funciones RPAD y LPAD (Formateando datos en Oracle)

oracle1

Si trabajamos con sqlplus desde la consola o queremos hacer una presentacion mas legible cuando usemos scripts SQL estas funciones nos interesaran: RAP y LPAD. Una rellena por la derecha, la otra por la izquierda. Su sintaxis es :

- campo columna sobre el que tratar.
- numero de caracteres.
- caracter de relleno.

Ejemplo: RPAD(usuarios,20,’.') : rellena con puntos ‘.’ hasta completar los 20 caracteres.

Mas informacion en | Tech Writings

Oracle SQL Developer Data Modeling, Crear Modelos E/R de Bases de datos Oracle

SQL Developer es una muy buena herramienta para trabajar con bases de datos Oracle, pero carecia de una funcion muy importante: la de diseñar o modelar diagramas Entidad/Relacion de nuestras bases de datos.
Esto ahora se ha solucionado con una nueva tool llamada “SQL Developer Data Modeling” que se encuentra actualmente en fase de testeo y que podemos descargarnos desde el sitio de Oracle.

Llevo muy poco tiempo usandola, asi que desconozco si existe una opcion para generar el modelo de una base de datos ya existente mediante ingenieria inversa, el modo en que yo he hecho esto has sido a partir de script DDL (lenguaje de definicion de datos) SQL que puedes generar desde SQLdeveloper cuando seleccionar uno o mas tablas (click derecho > Export DDL > Save to File…) e importando este fichero .sql desde SQL Developer Data Modeling (File > Import DDL File).

La ejecucion de SQL Developer Data Modeling es simple, te descargas el .zip correspondiente, lo descomprimes y luego desde el directorio correspondiente ejecutas.

$ cd /osdm/bin
$ ./osdm.sh &

Descarga | Oracle (requiere registro)

Tip: Usar variables en consultas SQL*Plus

Usar variables en la consultas SQL nos va a permitir parametrizar las Queries y darles mas potencia.Podriamos tener un SELECT que filtramos por un WHERE de algun determinado campo y cada vez que ejecutemos la consulta, podriamos definir un nuevo valor para esa variable, obteniendo unos u otros resultados segun nos interese.

Las variables se definen anteponiendo delante el caracter “&”.Por ejemplo en la siguiente consulta:

SELECT * FROM COUNTRIES WHERE country_id='&country'

Cuando la ejecutemos. Saltara un prompt que nos preguntara por el valor que le queremos dar a la variable (&country) y al fijar un valor, ya se ejecuta la consulta con ese valor que le pasamos.
Nos olvidamos ya de tener sentencias SQL “hard coded” del estilo:

SELECT * FROM COUNTRIES WHERE country_id='AR'

En el caso de que queremos pasar un valor fijo, podemos usar la clausula “DEFINE”. Ejemplo:

DEFINE country='CA';
SELECT * FROM COUNTRIES WHERE country_id='&country';

Podemos pasar tambien mensajes personalizados con “ACCEPT”:

ACCEPT country PROMPT 'Escribe el id de country :'
SELECT * FROM COUNTRIES WHERE country_id='&country';

Este tip ha sido extraido del siguiente enlace, que recomiendo leer pues contiene alguno mas, como puede ser el formatear el resultado de una consulta con “COLUMN”:

COLUMN FIRST_NAME HEADING 'Empleado | Nombre' FORMAT A8
COLUMN SALARY JUSTIFY LEFT FORMAT $99,999.00
COLUMN MANAGER_ID FORMAT 99999999 NULL 'No Format'
select EMPLOYEE_ID, FIRST_NAME, SALARY, MANAGER_ID from EMPLOYEES;

Ejecutar SQL*PLUS desde Shell Script

Hace tiempo escribi como ejecutar una consulta con sql*plus desde shell script y cargando los resultados en un array, el cual estaba basado en este articulo.

La idea es simple, ejecutar un sql con sql*plus y cargar las variables de la consulta en un array. Sin embargo este metodo tiene un problema y es cuando la columna contiene espacios. Por ejemplo podria ser un dato del estilo: “Estados Unidos de America”, entonces en el array este dato no se inserta como un unico item sino como cuatro: “Estados”, “Unidos”,”de”,”America”.

-> [UK] <-
-> [United <-
-> Kingdom] <-
-> [US] <-
-> [United <-
-> States <-
-> of <-
-> America] <-
-> [ZM] <-

Asi que ahora os dejo otro ejemplo, en el cual lo que hacemos con la directiva “spool” es guardar el resultado del SQL ejecutado en un fichero, el cual ya podemos tratar posteriormente con utilidades como “grep” o “awk”, por ejemplo, para extraer los datos.

Aqui el script:

#!/bin/bash

#---------------------------------------------------------------------------------
# read_sql
# Funcion para hacer consultas SQLPlus y cargar los valores en variables o Arrays
#---------------------------------------------------------------------------------
read_sql()
{
typeset stmt=$1
typeset login=$2
echo "
set feedback off verify off heading off pagesize 0
$stmt;
exit
" | sqlplus -s $login
}
#----

# ORACLE_SID, y ORACLE_HOME deben estar definidas, carga estas variables segun tu caso
ORACLE_SID="XE"
ORACLE_HOME="/usr/lib/oracle/xe/app/oracle/product/10.2.0/server"
echo "ORACLE_SID=$ORACLE_SID"
echo "ORACLE_HOME=$ORACLE_HOME"

echo "- Init -"
DATOS=(`read_sql "SELECT country_id,trim(country_name) FROM COUNTRIES" "hr/hr@XE" | while read v1 v2
do
echo "[$v1] [$v2]"
done`)

echo "Tras Ejecucion SQLplus mostramos el resultado cargado del array:"
for i in ${DATOS[@]};
do
echo "-> $i <- "
done

# Otro ejemplo, sin cargar resultados en Array sino imprimiendo directamente
# Cuidado con los retornos de carro o el comando dara error de conexion.
read_sql "SELECT trim(country_id),trim(country_name) FROM COUNTRIES" "hr/hr@XE" | while read c n
do
 echo "id es $c , name es '$n'"
done

# Nota: si el campo columna tiene espacios se fastidia el asunto
# Asi que es mejor usar este:
# Guardando la salida a un fichero temporal llamado "output.txt"

sqlplus -s hr/hr@XE <<EOT1 > /dev/null
set feedback off verify off heading off pagesize 0
spool output.txt
SELECT concat(concat(country_id,'|'),country_name) FROM COUNTRIES;
spool off
exit
EOT1

echo "Finalizado";

Como veis lo primero que hacemos con “set feedback off verify off heading off pagesize 0″ es eliminar la cabecera de resultados y paginar para que los datos se vean correctamente.
Despues con “spool” ya guardamos los resultados al fichero indicado.
El resultado de ejecutar el script sera un fichero “output.txt” de la forma:

jose@soledad:~$ cat output.txt
AR|Argentina
AU|Australia
BE|Belgium
BR|Brazil
CA|Canada
CH|Switzerland
CN|China
DE|Germany
DK|Denmark
EG|Egypt
FR|France
HK|HongKong
IL|Israel
IN|India
IT|Italy
JP|Japan
KW|Kuwait
MX|Mexico
NG|Nigeria
NL|Netherlands
SG|Singapore
UK|United Kingdom
US|United States of America
ZM|Zambia
ZW|Zimbabwe

Que ya podemos recorrer y procesar tranquilamente linea por linea.

Enlace | SQL*PLUS referencia (1) y (2)

Instalar Oracle XE en Ubuntu 8.04 Hardy Heron

Este post es para desarrolladores, o para cualquier@ que tenga interes en instalar esta base de datos en su sistema operativo.

En este articulo se comenta la instalacion de Oracle XE (Oracle Express Edition), en un articulo posterior ya comentare como instalar la version Oracle 11g en Linux. ¿Y Que diferencias hay entre Oracle XE y Oracle 11g? te preguntaras. Bien, Oracle XE es una version de Oracle que puedes instalar en tu equipo, pero tiene una serie de limitaciones. La primera es que no soporta el uso de varios procesadores, asi p.ej si tienes un equipo dual core, solo utilizaras 1 de los procesadores. Otra limitacion es en el espacio de almacenamiento, aunque dispongas de mas espacio, solo utilizaras hasta 1 maximo de 1 Gb de memoria y 4 Gb a nivel de espacio de almacenanamiento en disco, lo que implica, que tu base de datos no podra crecer si excede de cierto tamaño. ¿Y por que es todo esto?. Pues naturalmente Oracle es un producto de pago, si quieres usarla a nivel empresarial tienes que adquirir las licencias correspondientes, pero esta version de Oracle XE es muy sencilla de instalar y esta orientada a los desarrolladores, siendo completamente funcional para por ejemplo poder montar un entorno de trabajo en tu casa e ir haciendo desarrollos que podras complementar con los de tu empresa, donde tengas acceso a el Oracle server con toda su potencia.

Bien, despues de todo este pequeño “rollo”, procedamos a instalarlo.

Lo primero que tenemos que hacer es descargarnos el paquete .deb correspondiente, Para ello accedemos a la pagina oficial de oracle. A la hora de escribir este articulo, ese era el enlace, en el caso de que no puedas acceder, haz una busqueda en google con la cadena “Oracle XE download” para obtener la referencia al sitio.

El fichero se llama: oracle-xe-universal_10.2.0.1-1.0_i386.deb y ocupa aproximadamente 262 Mb.

Nota: Para poder descargar este fichero, tenemos que estar registrados en la web de Oracle.
El registro es gratuito.

Nos descargamos el fichero al escritorio

y procedemos a instalarlo haciendo doble click sobre el.

Una vez que termina de instalarse el paquete. Tenemos que configurar la base de datos. Para ello ejecutamos el comando:

sudo /etc/init.d/oracle-xe configure

Con eso arranca un configurador en modo texto que nos va a hacer una serie de preguntas: nos va a pedir el puerto de la aplicacion web que nos permite administrar graficamente la base de datos, el puerto de la base de datos, la password que queremos para el usuario SYS y SYSTEM de Oracle, y si queremos arrancar la base de datos cada vez que iniciemos la maquina.
Yo respondi usando los valores por defecto, cambia los valores de los puertos si entran en conflicto con otros usados en tu maquina y no te olvides de la contraseña que pongas para SYS y SYSTEM, la usaremos posteriormente.

Oracle Database 10g Express Edition Configuration
-------------------------------------------------
This will configure on-boot properties of Oracle Database 10g Express
Edition.  The following questions will determine whether the database should
be starting upon system boot, the ports it will use, and the passwords that
will be used for database accounts.  Press <Enter> to accept the defaults.
Ctrl-C will abort.
Specify the HTTP port that will be used for Oracle Application Express [8080]:8080
Specify a port that will be used for the database listener [1521]:1521
Specify a password to be used for database accounts.  Note that the same
password will be used for SYS and SYSTEM.  Oracle recommends the use of
different passwords for each database account.  This can be done after
initial configuration:
Confirm the password:
Do you want Oracle Database 10g Express Edition to be started on boot (y/n) [y]:y
Starting Oracle Net Listener...Done
Configuring Database...Done
Starting Oracle Database 10g Express Edition Instance...Done
Installation Completed Successfully.
To access the Database Home Page go to "http://127.0.0.1:8080/apex"

Y “san” se acabo. Ya esta instalada. Joder, que facil y que rapido he terminado de escribir este post.  Me voy a descansar…

Bueno aun no, comentemos cosas interesantes. La base de datos si no ha habido problemas ya esta instalada. Veamos como poder acceder a ella, para administrarla.

Pues como bien dice al acabar, puedes usar la siguiente URL para administrar graficamente tu base de datos.

http://127.0.0.1:8080/apex

Como usuario puedes usar: SYS o SYSTEM

y como password: la clave que indicaste en el instalador.

Desde aplicacion web podemos administrar toda la base de datos: tablespace, esquemas, tablas, usuarios, permisos, etc… es cuestion de ir navegando por las diferentes opciones:

Si de todas formas queremos entrar desde la consola, podemos hacerlo mediante sql*plus.

Antes, eso si, es conveniente dar permisos al usuario que trae de ejemplo la base de datos y de definir correctamente las variables de entorno de acceso a la base de datos en nuestro fichero profile, que se encuentra en el directorio home y tiene de nombre .bashrc

Vamos a ello.

Accedemos a nuestro directorio HOME

$ cd

y editamos el fichero .bashrc añadiendo las siguientes lineas:

# variables para ORACLE
ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_HOME
export ORACLE_SID=XE
export PATH

Si queremos cargar de manera inmediata esas variables, podemos hacerlo, ejecutando . .bashrc

jose@soledad:~$ . .bashrc
jose@soledad:~$ echo $ORACLE_HOME
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
jose@soledad:~$ echo $ORACLE_SID
XE

Como observas el ORACLE_HOME es /usr/lib/oracle/xe/app/oracle/product/10.2.0/server
, esa es la ruta donde se ha instalado el producto.

Y el ORACLE_SID es XE

Los alias de nuestra base de datos y de las diferentes otras bases de datos a las que podemos acceder se almacenan en un fichero llamado tnsnames.ora que se encuentra en el directorio $ORACLE_HOME/network/admin


$ cd $ORACLE_HOME/network/admin

$ cat tnsnames.ora
# tnsnames.ora Network Configuration File:
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = soledad)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)

En $ORACLE_HOME/bin suelen estar los ejecutables de la base de datos (sqlplus, lsnrctl, etc…)

Si queremos comprobar si podemos conectar a una base de datos podemos hacer uso del comando “tnsping”, este comando nos devuelve OK si podemos conectar remotamente, o un error en otro caso:
Como el sid de la base de datos (y asi tambien esta en el tnsnames) es XE, ejecuto:


jose@soledad:~$ tnsping XE
TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production on 11-MAY-2008 20:36:59
Copyright (c) 1997, 2005, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = soledad)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE)))
OK (0 msec)

Guay, tenemos conexion a la base de datos. Accedo ahora como usuario SYS mediante sqlplus y le doy permisos (habilito) el usuario que trae de ejemplo la base de datos (este usuario es HR).
Siempre sera luego mejor entrar como ese usuario, pues si accedemos como SYS o SYSTEM podriamos hacer algo mal y estropear la base de datos (es mejor entrar como SYS o SYSTEM cuando tengamos que hacer alguna operacion de dba, administradores de la base de datos y como usuario normal en el resto de los casos).

Entro como sys:


jose@soledad:~$ sqlplus sys as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Sat May 10 16:20:04 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production

Ahora desbloqueo al usuario HR:

SQL> alter user HR account unlock;
User altered.
SQL> alter user HR identified by aqui_la_password;
User altered.
SQL> exit;
Disconnected from Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production

Perfecto!, comprobemos que podemos entrar como usuario HR. Yo como le he dado al usuario la password HR (alter user HR identified by HR) y la sintaxis es: sqlplus user/pass@BBDD, Entraria como:

jose@soledad:~$ sqlplus HR/HR@XE

Y el resultado:


SQL*Plus: Release 10.2.0.1.0 - Production on Sat May 10 16:21:02 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production
SQL> select table_name from user_tables;
TABLE_NAME
------------------------------
REGIONS
LOCATIONS
DEPARTMENTS
JOBS
EMPLOYEES
JOB_HISTORY
COUNTRIES
7 rows selected.
SQL> select * from regions;
REGION_ID REGION_NAME
---------- -------------------------
1 Europe
2 Americas
3 Asia
4 Middle East and Africa
-----------------------------

Parece que todo esta bien. Ni que decir que este usuario de ejemplo (HR) ya trae unos tablas de ejemplo, y su propio esquema. pero que no hay ningun problema en crear otras tablas o quien dice esquemas y usuarios.

Cuando hemos instalado Oracle XE, se ha creado en nuestro sistema un nuevo usuario oracle, y un nuevo grupo dba. Es conveniente añadir nuestro usuario al grupo dba para que podamos hacer ciertas funciones para las que en otro caso no tendriamos permisos. Por ejemplo: recargar el listener.

El listener es el servicio que permite que otras maquinas conecten remotamente a nuestra base de datos. Puede darse el caso de que la base de datos este funcionando, y entremos a ella localmente mediante sqlplus pero cuando intentamos conectar desde otra maquina remota no podamos. Eso seguramente sea porque el servicio listener este caido.

Para levantar el listener, nos vamos a $ORACLE_HOME

$ cd ORACLE_HOME

y ejecutamos: lsnrctl

$ lsnrct

Como comandos principales del listener podemos usar: help, reload, start, stop, status. help, muestra una ayuda con los comandos. reload, lo recarga. start, lo inicia. stop, lo para y status nos muestra el estado actual:

jose@soledad:/usr/lib/oracle/xe/app/oracle/product/10.2.0/server$ lsnrctl
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 11-MAY-2008 20:50:50
Copyright (c) 1991, 2005, Oracle.  All rights reserved.
Welcome to LSNRCTL, type "help" for information.
LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date                11-MAY-2008 18:47:25
Uptime                    0 days 2 hr. 3 min. 27 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Default Service           XE
Listener Parameter File   /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/network/admin/listener.ora
Listener Log File         /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC_FOR_XE)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=soledad)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=8080))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "XE" has 1 instance(s).
Instance "XE", status READY, has 1 handler(s) for this service...
Service "XEXDB" has 1 instance(s).
Instance "XE", status READY, has 1 handler(s) for this service...
Service "XE_XPT" has 1 instance(s).
Instance "XE", status READY, has 1 handler(s) for this service...
The command completed successfully
LSNRCTL>

Pero como os comentaba antes, si intentamos parar el listener como nuestro usuario home actual nos daria un error porque no tenemos permisos suficientes:

LSNRCTL> stop
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
TNS-01190: The user is not authorized to execute the requested listener command

Estas operaciones debemos ejecutarlas como usuario oracle, que si tiene permisos:

$ sudo -s
$ su - oracle

Ojo, tenemos que tener tambien definidas las variables ORACLE_HOME y ORACLE_SID para este usuario oracle o nos dara error a la hora de intentar acceder a la base de datos. Con el usuario “oracle” si que podriamos ya ejecutar lsnrctl y luego stop.
La otra opcion es añadir nuestro usuario al grupo de dba. Podemos hacerlo desde Sistema > Administracion > Usuarios y Grupos.

A la administracion de la base de datos, tambien podemos acceder desde el menu de aplicaciones:

Acceder a la base de datos desde la consola puede resultar a algun@s bastante incomodo, veamos como instalar un cliente grafico de SQL para ORACLE.

Instalando ExecuteQuery

ExecuteQuery es un buen cliente JDBC para SQL. ¿Esto que quiere decir?, esto quiere decir que podemos acceder a cualquier base de datos para la que dispongamos un driver JDBC, no necesariamente a oracle solamente. Ventajas, al ser un cliente JDBC solo necesitamos tener instalado el driver JDBC de Oracle para poder conectar con la base de datos. No tenemos que tener instalado el instant client de Oracle ni preocuparnos de las variables de entorno. Desventaja: es una aplicacion Java, para que funcione requiere que tengas instalado el JRE (Java Runtime de Java). En caso de que ya lo tengas instalado, entonces no es mayor problema.

Nos descargamos el instalador de execute query desde la pagina web y lo iniciamos con:

$ java -jar executequery-installer-v3.1.0.jar

Se instala en el directorio elegido. Para iniciarlo, accedemos a esa carpeta y ejecutamos el script “eq.sh”:

$ cd executequery
$ ./eq.sh &

Si no te arranca, edita el fichero eq.sh, en el se indica la ruta al JRE, asi que puede que tengas que editar esa localizacion:

jose@soledad:~/executequery$ cat eq.sh
#!/bin/sh
# Java heap size, in megabytes
JAVA_HEAP_SIZE=256
# determine the java command to be run
JAVA=/usr/lib/jvm/java-6-openjdk/jre/bin/java
if [ "X$JAVA" = "X" ]; then
# try possible default location (which should have come up anyway...)
JAVA=/usr/bin/java
fi
exec $JAVA -mx${JAVA_HEAP_SIZE}m -jar "/home/jose/executequery/eq.jar" &

Bien, lo primero que tenemos que hacer en Execute Query es instalar el driver JDBC para ORACLE. Yo instale el ojdbc14.jar, puedes descargarlo desde la pagina de Oracle.

Iriamos a la pestaña “Drivers” y creariamos un nuevo Driver, indicando como ruta de la clase java, el lugar donde hayamos dejado el fichero ojdbc14.jar.

Ahora que ya tenemos el driver JDBC de Oracle instalado. Creamos una nueva Conexion a la base de datos que tenemos instalada en local. Para ello seleccionamos la pestaña “Conexiones” y creamos una nueva entrada para nuestra base de datos (XE):

Ahora ya podriamos conectar con la base de datos (usuario HR, password HR o el que hubieramos puesto). Desde la aplicacion, podemos examinar el esquema de la base de datos, incluso las relaciones entre las tablas:

Aunque lo que mas usaremos sera el editor de SQL:

Instalando SQL Developer

Otro cliente SQL muy bueno y en Java es SQL Developer, este proporcionado por el propio Oracle. Es un cliente que podemos descargar gratuitamente y que se va actualizando cada cierto tiempo. Para descargarlo (requiere registro) nos conectamos a la siguiente pagina de Oracle.
La instalacion es muy sencilla, basta con descomprimir el fichero.
Nota: al contrario que en el caso anterior para que funcione correctamente requiere de en este caso no un JRE (Java Runtime) sino un JDK (Java development Kit) 1.4 o superior de Java. De hecho, la primera vez que ejecutemos el cliente, si no encuentra la ruta, nos pedira que se la indiquemos.

Para arrancar el cliente ejecutamos:

$ cd sqldeveloper
$ ./sqldeveloper.sh

Y ya arranca la aplicacion. Lo primero que tendremos que hacer es crear una conexion a nuestra base de datos:

Y ya podriamos conectar:

Resumen:

En este pequeño articulo hemos visto como instalar un servidor de Oracle en nuestra maquina, y acceder a ella mediante un cliente grafico.

Shell Script – Consulta de Oracle almacenando el resultado en un Array

Si te interesa la programacion de Shell Scripts en mi otro Blog he dejado un pequeño articulo de como hacer una consulta sobre una base de datos Oracle, y almacenar el resultado de la consulta en un Array de variables del propio Shell script. Es util para el tratamiento de datos de Oracle mediante Scripts de Unix utilizando los comandos de tratamiento de cadenas.

Consulta de Oracle almacenando el resultado en un Array

Entradas siguientes »


Mi Google Calendar de Estrenos de Cine

Ubuntu: For Desktops, Servers, Netbooks and in the cloud

TRABAJANDO EN EL NUEVO UBUNTU LIFE
Problemas en el servidor, me han obligado a abandonar temporalmente www.ubuntulife.net y ahora escribo solo en ubuntulife.wordpress.com, estoy trabajando en el nuevo sitio y espero añadir novedades. Sugerencias son bienvenidas. ( Lee mas )

WALLPAPERS LIFE ( 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

 

Enero 2010
L M X J V S D
« Dic    
 123
45678910
11121314151617
18192021222324
25262728293031

Blog Stats

  • 8,429,757 hits