Professional Documents
Culture Documents
Manual explicado paso a paso (con capturas de pantalla) cómo instalar Oracle 9i en Windows (cualquier
versión). Incluyendo soluciones de algunos errores en el arranque de Oracle.
• Seleccionaremos la siguiente opción dependiendo del uso que le quer amos dar a nuestra base de
datos, normalmente es para Uso General. Si no queremos crear una base de datos en el proceso de
instalación (se puede crear en otro momento) seleccionaremos Sólo software:
• Seleccionaremos el puerto para Oracle MTS Service, normalmente se suele seleccionar el puerto por
defecto 2030. Este parámetro es muy importante pues, si decidimos cambiar el puerto por defecto,
cuando queramos que un cliente se conecte al servidor deberemos especificar el puerto que hayamos
seleccionado en este punto de la instalación:
• Especificaremos el nombre de la base de datos (con un máximo de 8 caracteres):
Nota: el SID es el identificador interno que utilizará Oracle para referenciar a nuestra base de datos, se
puede elegir uno diferente al del nombre de la Base de Datos, aunque se suele utilizar el mismo.
• En este punto de la instalación seleccionaremos la ubicación de los archivos de la base de datos que la
instalación creará. Oracle recomienda que la ubicación de los archivos de la base de datos esté en un
disco físico distinto al de los archivos de la instalación (software de Oracle). También recomienda que los
archivos de Redo Log estén multiplexados (varias copias, esto se configura en la consola de
administración de Oracle) y en diferentes discos físicos. Lógicamente es lo recomendable por Oracle y
sólo se configura así cuando se trata de una Base de Datos que tendrá múltiples accesos concurrentes
(al mismo tiempo) y con un volumen de datos importante, pues el desembolso económico en harware
para la correcta instalación de Oracle puede ser importante. En nuestro caso, instalaremos los archivos
de la base de datos en un segundo disco duro instalado exclusivamente para Oracle. A pesar de todo no
hay ningún problema por instalar la bas e de datos en el mismo disco duro que el software de Oracle. Si
nuestra organización dispone, por ejemplo, de unos 20 usuarios conectados a Oracle no habría una
pérdida del rendimiento por instalarla en el mismo disco duro. Por supuesto esto es orientativo pues
dependerá también del volumen de datos que necesite cada usuario así como de otros factores (rpm del
disco duro, características del servidor de Oracle (procesadores, memoria RAM, …), velocidad de la red
local, tipo de conexión que realice el software de nuestra empresa que acceda a Oracle (el acceso nativo
sin necesidad de utilizar controladores ODBC incrementa considerablemente el rendimiento frente a
accesos mediante controladores ODBC que no dejan de ser una pasarela entre el software y Oracle):
• Seleccionaremos el juego de caracteres que vayamos a utilizar, si dejamos el juego de caracteres por
defecto Oracle utilizará el juego de caracteres que tengamos configurado en nuestro sistema operativo,
es la opción recomendada. Este parámetro sólo sería importante en el caso en que queramos exportar
nuestra base de datos a otro servidor de Oracle, en este caso será importante que el juego de caracteres
del servidor que recibirá los datos coincida con el que los exportó. Si no coinciden podrían aparecer
erróneamente caracteres como “€” alojados en nuestra base de datos:
• Como último paso de la preinstalación nos aparecerá una ventana con el software que se va a instalar,
tras comprobar que es correcto pulsaremos en Instalar:
• Tras la instalación de Oracle y la creación de la base de datos aparecerá una ventana indicando que el
proceso de instalación ha finalizado:
En esta ventana nos indica que ha finalizado el proceso de instalación y que podemos acceder desde
cualquier otro PC de la red introduciendo en el navegador de Internet:
http://nombre_o _IP_del_servidor_oracle:7778
El acceso vía Internet está permitido pues al seleccionar la instalación Enterprise Edition se instala e
inicia por defecto Oracle http Server (servidor web de Oracle).
Si al intentar acceder a la Consola de Oracle En terprise Manager nos aparece este error:
Deber emos configurar el Listener manualmente, para ello accederemos a Inicio – Programas – Ora cle –
OraHome92 – Configuration and Migration Tools – Net Configuration Assistant:
Seleccionamos Configuración de Listener y a continuación Volver a Configurar:
Si tenemos iniciado el Servidor http de Ora cle podr emos acceder desde cualquier equipo de la red local
y, también, desde cualquier parte del mundo (siempre que tengamos configurado el router con el
puerto 7778 redirigido a la IP local del Servidor de Oracle). Es suficiente con poner en el navegador de
Internet: http://IP_Servidor_Oracle:7778, nos aparecerá una ventana como esta:
Desde aquí podremos configurar los usuarios que tendrán acceso a través de Internet a Oracle, así como
los procedimientos que se ejecutarán en el inicio.
• Al iniciar la Enterprise Manager Console o al intentar conectarme a la Base de Datos de Oracle aparece
el siguiente error:
Solución:
Accedemos al Regedit, desde el botón Inicio – Ejecu tar ponemos regedit y pulsamos en Acepta r:
buscamos la siguiente clave:
HKEY_LOCAL_MACHINE/SOFTW ARE/ORACLE/HOME0
E insertamos una nueva entrada de tipo Valor de cadena expandible con el valor TRUE:
USE_SHARED_SOCKET=TRUE
Una vez añadida esta clave reiniciaremos el sistema. En teoría ya debería haberse solucionado el
problema.
Si el problema sigue produciéndose tras reiniciar, será conveniente comprobar el fichero
WinsockXPFix.exe
• El espacio en disco no para de decrecer, hasta quedarse sin espacio. Este problema es producido por el
Servidor HTTP de O racle Basado en Apache, cuando dicho servidor encuentra algún problema con el
Listener (como el descrito en el punto 1), lo informa escribiendo en el log que crea a tal efecto. Dicho
fichero de log va creciendo desproporcionadamente hasta dejar el disco duro sin espacio. La línea del
fichero de log podría ser como esta:
[warn] FastCGI: server "c:/oracle/o ra92/bin/isqlplus" can't be resta rted :exceeded max resta rts
Solución:
Para solucionar este problema, en primer lugar deberemos detener el servicio
OracleOraHome92HTTPServer y deshabilitarlo para que no se vuelva a iniciar, al menos, hasta que
solucionemos el problema, a continuación eliminaremos el fichero de log de Apache ubicado en:
C:/oracle/ora92/Apache/Apache/logs
Eliminaremos el fichero error_log, si no nos deja eliminarlo será porque el servicio no se ha detenido
correctamente, con lo cual deberíamos deshabilitar dicho servicio y reiniciar el equipo.
Con esto hemos solucionado el problema parcialmente pues, aunque ya no vamos a tener problemas
con el espacio en disco, el servidor de Apache estará deshabilitado, con lo cual no podremos acceder a
Oracle vía Internet.
Para poder iniciar el servicio de Apa che sin que deje el disco sin espacio editaremos el fichero:
C:/oracle/ora92/Apache/Apache/conf/httpd.conf
Y modificaremos la línea LogLevel warn por Log Level erro r . De esta forma evitaremos que el log se llene
de warning y sólo se guardarán los errores. Una vez guardado el fichero httpd.conf podremos volver a
iniciar el servicio OracleOraHome92HTTPServer.
Solución:
Normalmente es debido a un fallo de conexión de red con el servidor. Si, tras comprobar que la red
funciona adecuadamenete, el problema sigue apareciendo se puede deber también a la intervención de
un cortafuegos (tanto hardware como software). Por ejemplo, si tenemos instalado Oracle Server en un
PC con Windows XP, el cortafuegos software que éste incorpora inpedirá el acceso a la Base de Datos
Oracle desde otros PCs. Para solucionarlo deberemos configurar adecuadamente en cortafuegos
abriendo los puertos que utiliza Oracle, tales como el 1521.
Para iniciar una base de datos de Oracle manualmente seguiremos los siguientes pasos:
o Sqlplus /nolog: Para conectarnos a SQLPlus que es la consola de Oracle para MS-DOS,
útil para realizar tareas de mantenimiento de la Base de Datos, tales como reparación,
apagado manual, inicio manual
o Connect / as sysdba: Para conectarnos a Oracle como administradores, al no poner
nombre de usuario delante de “/” se asume el usuario del sistema operativo (éste ha
de ser administrador)
o Select status from v$instance: con esta consulta comprobamos que la base de datos
no está iniciada, para ello deberá devolver un valor distinto a STARTED
o Select database_status from v$instance
o startup nomount: con esta sentencia iniciaremos la base de datos sin montar, puede
ser útil para reparar algún datafile dañado o para realizar tareas que no se podrían
llevar a cabo con la base de datos montada
o shutdown immediate: cierra la base de datos, incluso aunque haya usuarios
conectados
o startup: inicia y monta la base de datos , la deja lista para ser usada
o alter user hr identified by hr account unlock: esta instrucción sirve para desbloquear
un usuario bloqueado y cambiarle la contraseña, en este caso hemos desbloqueado un
usuario que Oracle crea por defecto, llamado hr y le hemos asignado la contraseña hr
o connect hr/hr: nos conectamos con el usuario hr para hacer una Select y comprobar
que funciona correctamente
o select * from employees: hacemos una consulta de selección para que nos muestre el
contenido de la tabla employees que Oracle crea automáticamente en la instalación
Nota: este manual no tiene por qué ser la mejor forma de instalar Oracle, es una de las muchas
configuraciones que se pueden realizar.
Requerimientos:
Permisos de Administrador: Es necesario tener per misos de administrador para ejecutar el instalador.
Requisitos mínimos de Hardware: Es necesario cumplir con los siguientes requerimientos mínimos en
Esta es una guía rápida de instalación de Oracle 11g en Windows 32 -Bit, así que solo se tocaran los
puntos más importantes para dejar corriendo los servicios básicos de Oracle.
Requerimientos:
2. Requisitos mínimos de Hardw are: Es nec esario cumplir con los siguientes requerimientos
mínimos en equipo donde se desea instalar:
Requisito Mínimo
Memoria Física (RAM) 1Gb
Memoria Virtual El doble de tamaño que la RAM
(2Gb)
Espacio en disco Instalación Básica: 4.55Gb
Instalación Avanzada: 4.92Gb
Adaptación de Vídeo 256 colores
Procesador 550Mhz
Instalación:
1. Si está instalando Oracle en un equipo con muchos alias, defina la variable de entorno
ORACLE_HOSTNAME en el Panel de Control para definir el alias que se va a usar.
2. Ingrese al directorio donde descomprimió el instalador
3. Ejecute el instalador con permisos de Admi nistrador. Si el usuario que en el que estas logueado
actualmente no tiene esos permisos(En Windows Vista es obligatorio usar el usuario
Administrador / Administrador para esto), da clic derecho al instalador, elige la opción ejecutar
como…. y selecciona un usuario con los permisos adecuados:
5. Usualmente se elige la opción Básica, pero esta vez va mos a pasar por la parte avanzada. así
que elegimos Instalación Avanzada:
6. Si es la primer instalación que hace de Oracle es probable que tenga que especificar, la ruta
seria: “/u01/app/oraInventory“.
8. Ahora dejamos todos los parámetros de la localización de la instalación tal como están por
default:
9. A continuación se nos muestran los componentes a ser instalados. Seleccionamos los que
necesitemos o podemos dejarlo tal como esta:
10. Llego la hora de la instalación de la base de datos. Seleccionamos el tipo de base de datos que
necesitemos:
11. Antes de instalarse se nos muestra un breve sumario que detalla cada parámetro de la
instalación, si todo esta correcto damos clic en Install:
12. Seguro que a estas alturas ya se antoja una taza de café (ahora mismo hace frío acá en
Montemor elos,NL), así que sientete en la libertad de irte a preparar uno o charlar un rato con
tu chapis; porque esto va a tardar un buen rato:
13. Espero que te hallas divertido mientras Oracle se instalaba, si no ocurrió ningún
problema….felicidades Oracle está instalado en tu máquina y listo para comenzar a trabajar:
Cualquier duda a problema con la instalación porfavor no preguntes aquí, no soy un experto en la
administración de BD Oracle. Este solo es un trabajo presentado en cumplimiento de una materia, por el
contrario te animo visites el sitio que te r ecomiendo a continuación; espero allí puedas resolver todas
tus dudas.
Finalmente en el SQL Developer realizamos una nueva conexión de la base de datos creada con el
nombre del usuario.
CREACIÓN DE TABLAS
La sentencia CREATE TABLE es la orden SQL que permite crear una tabla. Por defecto será almacenad en
el tablespace por defecto del usuario que crea la tabla.
Sintaxis:
Ejemplo:
Ejemplo:
DESCRIBE Region;
Indicando la tabla se añaden los datos que se especifiquen tras el apartado VALUES en un nuevo
registro. Los valores deben corresponderse con el orden de las columnas. Si no es así se puede indicar
tras el nombre de la tabla y entre paréntesis.
Ejemplo:
Begin
INSERT INTO Region(RegionID, RegionDescription)
VALUES (1, 'Eastern');
commit;
end;/
BORRADO TABLAS
Borrar tabla
La sentencia DROP TABLE seguida del nombre de una tabla, permite eliminar la tabla en cuestión.
Al borrar una tabla:
El borrado de una tabla es irreversible, y no hay ninguna petición de confirmación, por lo que conviene
ser muy cuidadoso con esta operación.
La sentencia TRUNCATE TABLE seguida del nombre de una tabla, hace que se elimine el contenido de la
tabla, pero no la tabla en sí. Incluso borra del archivo de datos el espacio ocupado por la tabla.
Esta orden no puede anularse con un ROLLBACK.
MODIFICAR TABLAS
La versátil ALTER TABLE per mite hacer cambios en la estructura de una tabla.
Añadir columnas
Permite añadir nuevas columnas a la tabla. Se deben indicar su tipo de datos y sus propiedades si es
necesario (al estilo de CREATE TABLE).
Las nuevas columnas se añaden al final, no se puede indicar otra posición.
Borrar columnas
Elimina la columna indicada de manera irreversible e incluyendo los datos que contenía.
No se puede eliminar la última columna (habrá que usar DROP TABLE).
Modificar columna
Permite cambiar el tipo de datos y propiedades de una determinada columna.
Sintaxis:
Se le pueden poner comentarios a las tablas y las columnas. Un comentario es un texto descriptivo
utilizado para documentar la tabla.
Sintaxis:
Para mostrar los comentarios puestos se usan las siguientes vistas del diccionario de datos mediante la
instrucción SELECT:
RESTRICCIONES
Una restricción es una condición de obligado cumplimiento para una o más columnas de la tabla. A cada
restricción se le pone un nombre, en el caso de no poner un nombr e (en las que eso sea posible)
entonces el propio Oracle le coloca el nombre que es un mnemotécnico con el nombre de tabla,
columna y tipo de restricción.
Su sintaxis general es:
Las restricciones tienen un nombre, se puede hacer que sea Oracle el que les ponga nombre, pero
entonces será críptico. Por eso es mejor ponerle uno mismo.
Los nombres de restricción no se pueden repetir para el mismo esquema, por lo que es buena idea
incluir de algún modo el nombr e de la tabla, los campos involucrados y el tipo de restricción en el
nombre de la misma.
Prohibir nulos
La restricción NOT NULL permite prohibir los nulos en una determinada tabla. Eso obliga a que la
columna tenga que tener obligatoriamente un valor para que sea almacenado el registro.
Se puede colocar durante la creación (o modificación) del c ampo añadiendo la palabra
Valores únicos
Las restricciones de tipo UNIQUE obligan a que el contenido de uno o más campos no puedan repetir
valores. Nuevamente hay dos formas de colocar esta restricción:
CREATE TABLE cliente(dni VARCHAR2(9) UNIQUE);
En ese caso el nombre de la restricción la coloca el sistema Oracle. Otra forma es:
CREATE TABLE cliente(dni VARCHAR2(9) CONSTRAINT dni_u UNIQUE);
Esta forma permite poner un nombre a la restricción. Si la repetición de valores se refiere a varios
campos, la forma sería:
CREATE TABLE alquiler(dni VARCHAR2(9),
cod_pelicula NUMBER(5),
CONSTRAINT alquiler_uk UNIQUE(dni,cod_pelicula) ;
La coma tras la definición del campo cod_pelicula hace que la restricción sea independiente de ese
campo. Eso obliga a que, tras UNIQUE se indique la lista de campos.
La clave primaria de una tabla la forman las columnas que indican a cada registro de la misma. La clave
primaria hace que los campos que la forman sean NOT NULL (sin posibilidad de quedar vacíos) y que los
valores de los campos sean de tipo UNIQUE (sin posibilidad de repetición).
Una clave secundaria o foránea, es uno o más campos de una tabla que están relacionados con la clave
principal de los campos de otra tabla. La forma de indicar una clave foránea es:
La integridad referencial es una herramienta imprescindible de las bases de datos relacionales. Pero
provoca varios problemas. Por ejemplo, si borramos un registro en la tabla principal que está
relacionado con uno o varios de la secundaria ocurrirá un error, ya que de permitírsenos borrar el
registro ocurrirá fallo de integridad (habrá claves secundarios refiriéndose a una clave principal que ya
no existe).
Por ello Oracle nos ofrece dos soluciones a añadir tras la cláusula REFERENCES:
ON DELETE SET NULL. Coloca nulos todas las claves secundarias relacionadas con la borrada.
ON DELETE CASCADE. Borra todos los registros cuya clave secundaria es igual que la clave del
registro borrado.
Restricciones de validación
Son restricciones que dictan una condición que deben cumplir los contenidos de una columna. La
expresión de la condición es cualquier expresión que devuelva verdadero o falso, pero si cumple estas
premisas:
Una misma columna puede tener múltiples CHECKS en su definición (se pondrían varios
CONSTRAINT seguidos, sin comas).
Ejemplo:
Mostrar restricciones
La vista del diccionario de datos USER_CONSTRAINTS permite identificar las restricciones colocadas por
el usuario (ALL_CO NSTRAINTS per mite mostrar las restricciones de todos los usuarios, pero sólo está
permitida a los administradores). En esa vista aparece toda la información que el diccionario de datos
posee sobre las restricciones.
CREACIÓN DE ÍNDICES
Tipos de índices
Existen tres tipos de índices cuya naturaleza depende de la forma en que haya sido creado. Estos tipos
son:
Un índice único es aquel que tiene la restricción adicional de que el grupo de columnas indexadas define
una única fila. Sin embargo, si no van a existir más grupos de columnas con estas características dentro
de una misma tabla, se recomienda crear el conjunto como una clave primaria ya que de todas formas
Oracle asociará un índice único a esta restricción (la clave primaria).
Un índice no único, que es aquel que no impone la restricción de que las filas no deban repetirse.
Un índice compuesto es aquel que agrupa varias columnas de la tabla. Este tipo es muy útil cuando las
sentencias de selección (SELECT) efectúan búsquedas por varios criterios (columnas) en una misma
tabla. Es importante el orden en que se ponen las columnas al crear el índice; la columna más
referenciada debería ser puesta en primer lugar y así sucesivamente.
Es importante decidir qué columnas indexar. Siga las siguientes reglas cuando tenga que tomar esta
decisión:
Escoja las columnas que se utilizan con mayor frecuencia en las cláusulas
WHERE de las consultas.
No indexe aquellas columnas que tengan demasiados valores repetidos en ellas.
Las columnas que toman valores únicos son excelentes candidatas para indexar.
Oracle automáticamente indexa las claves primarias de las tablas.
Indexe las columnas que sirven para unir una tabla con otras (join en las consultas).
Si hay columnas que no tienen valores únicos por sí solas pero que en conjunto con otra
columna forman una dupla única o con pocas repeticiones (menos que las columnas
individualmente), entonces conviene indexarlas (siempre y cuando existan consultas que las
utilicen en conjunto). Estos índices reciben el nombre de índices compuestos.
Los comandos básicos del DBMS es un conjunto de sentencias que está orientado a la consulta y manejo
de datos de los objetos creados, básicamente consta de 4 sentencias:
SELECT, INSERT, DELETE, UPDATE.
INSTRUCCIÓN SELECT
Es la encargada de indicar las columnas que se desean mostrar de una tabla en el resultado, con
cualquier tipo de condición, agrupación u ordenación. Una sentencia
SELECT retorna un único conjunto de res ultados, por lo que podrá ser aplicada en cualquier lugar donde
se espere un conjunto de resultados.
Las distintas columnas deben aparecer separadas por coma ( , ), opcionalmente puede ser cualificadas
con el nombre de su tabla utilizando la sintaxis:
Si se quieren mostrar todas las columnas de una tabla, se podrá incluir el carácter *, o bien TABLA.*
La sintaxis básica es:
La sentencia WHERE indica qué condiciones debe cumplirse para que una fila entre dentro del conjunto
de resultados retornado. Para construir las condiciones se podrán utilizar todos los operadores lógicos.
Es posible construir condiciones complejas uniendo dos o más condiciones simples a través de los
operadores lógicos AND y OR.
La sentencia GROUP BY.- La expresión GROUP BY se utiliza para agrupar valores que es necesario
procesar como un grupo.
La sentencia HAVING.- Se utiliza cuando se quiere poner condiciones al resultado de un grupo. Sólo se la
puede utilizar si se ha incluido la cláusula GROUP BY.
La sentencia ORDER BY.- Se utiliza para ordenar las filas del conjunto de resultados final.
Todas las columnas por las que se desea realizar el orden tienen que encontrarse en la sentencia SELECT
de la consulta.
INSTRUCCIÓN DELETE.
Borra una o más filas de una tabla, dependiendo de la condición WHERE, para guardar cambios hay que
ejecutar COMMIT; y para cancelar el borrado podemos hacer
ROLLBACK; su sintaxis es la siguiente:
DELETE FROM no mbre_tabla
WHERE condición;
Ejemplo de DELETE
Tabla antes del borrado
INSTRUCCIÓN UPDATE.
Actualiza valores de una o más columnas para un subconjunto de filas de una tabla, para guardar
cambios hay que ejecutar COMMIT; y para cancelar la modificación podemos hacer ROLLBACK;
su sintaxis es la siguiente:
UPDATE no mbre_tabla
SET columna1 = valor1, columna2 = valo r2, ...
WHERE condición;
Actualiza las filas que cumplan con la condición, si no se pone condición de selección, la actualización se
da en todas las filas de la tabla.
No existe una gran diferencia entre la sintaxis básica de SQL Server 2005 y Oracle 11g, la única diferencia
es que para ejecutar la consulta, inserción, actualización o borrado en SQL se ponía al final GO, mientras
que en Oracle solo se pone punto y coma (;).
Ejemplo de UPDATE
Antes de la actualización
Después de la actualización
CONSULTAS
SQL es un conjunto de sentencias u órdenes que todos los programas y usuarios deben utilizar para
acceder a bases de datos Oracle. No hay otra manera de comunicarse con Oracle si no es a través de
SQL. Dado que SQL es un estándar, todas las bases de datos comerciales de la actualidad utilizan SQL
como puente de comunicación entre la base de datos y el usuario.
Ejemplo de consultas
SUBCONSUL TAS
Una subconsulta es una instrucción SELECT anidada dentro de una instrucción SELECT,
SELECT...INTO, INSERT...INTO, DELETE, o UPDATE o dentro de otra subconsulta.
Una vista no es más que una consulta al macenada a fin de utilizarla tantas veces como se desee. Una
vista no contiene datos sino la instrucción SELECT necesaria para crear la vista.
Creación de vistas
Sintaxis:
Donde:
OR REPLACE. Si la vista ya existía, la cambia por la actual.
FORCE. Cr ea la vista aunque los datos de la consulta SELECT no existan
vista. Nombre que se le da a la vista
alias. Lista de alias que se establecen para las columnas devueltas por la consulta
SELECT en la que se basa esta vista. El número de alias debe coincidir con el número de columnas
devueltas por SELECT.
WITH CHECK OPTION. Hace que sólo las filas que se muestran en la vista puedan ser añadidas
(INSERT) o modificadas (IPDATE). La restricción que sigue a esta sección es el nombre que se le
da a esta restricción de tipo CHECK OPTION.
WITH READ ONLY. Hace que la vista sea de sólo lectura. Permite grabar un nombre para esta
restricción.
Procedimientos almacenados
Un procedimiento almacenado es un conjunto de instrucciones en PL/SQL, que pueden ser llamado
usando el nombre que se le haya asignado.
La sintaxis para crear un procedimiento es la siguiente:
CREATE [OR REPLACE] PROCEDURE name ([param [IN|OUT|IN OUT|] datatype ], . . .)
AS sql_subprogram