
Administración Oracle
Este apartado tiene como intencion ir escribiendo lo aprendido en clases de “Administracion de Bases de Datos Oracle“, y lo primero que he de recomendar de hacer, es instalar en su Ordenador o en una maquina virtual el sistema operativo Linux, si te estas iniciando te recomiendo Ubuntu.
luego debes instalarte Oracle en el sistema haciendo los pasos como salen aqui
yo por mi parte, he decidido instalar la maqina virtual VMware y emular el siguiente archivo torrent
el cual tiene las siguiente caracteristicas:
-
Torrent name:
-
Filename:VMWare-CentOS-Oracle.zip
-
Download size:3.88 GB
-
Peers:
-
Health:

-
Tags:
-
Creation date:2008/05/26
-
Info hash:62cc13981417dfd362152b4e1f129fa9f5414ad8
-
Tracker announce:http://open.tracker.thepiratebay.org/announce
Introduccion
Oracle es una de las mas Grandes empresas de la Informatica orientada a la gestion de bases de datos relacionales, las grandes caracteristicas de Oracle son las siguientes:
- Soporte de transacciones.
- Estabilidad.
- Escalabilidad.
- Soporte multiplataforma.
Hasta hace poco Oracle manejaba una gran parte del mercado, pero actualmente existen muchas alternativas a esta, tales como: Microsoft SQL Server de Microsoft y de la oferta de otros RDBMS con licencia libre como PostgreSQL y MySql.
Para mas detalles sobre Oracle puedes hacer dirigirte aqui.
1.- Leer esto antes de comenzar
Primero que todo es importante saber como funciona la arquitectura del motor de bases de datos Oracle por lo tanto aqui les dejo 3 archivos escritos por el profesor CARLOS MANRIQUEZ del Instituto DuocUC, son bastante buenos y de primordial importancia para la “Administracion de Bases de Datos Oracle“.
- Cap 1 Arquitectura Orale.pdf
- Cap 2 Administracion de Instancia.pdf
- Cap 3 Creacion De Base De Datos.pdf
Bueno y como primera tarea a desarrollar, será la siguiente:
Taller # 3 UTL_FILE y UTL_MAIL
Estimados alumnos
Como taller que pueden comenzar a desarrollar mañana se propone el siguiente problema.
1..- Utilizando el package de oracle llamado UTL_FILE crear un procedimiento almacenado llamado GENERA_ARCHIVO_EMP que permita crear un archivo con todos los empleados de la tabla SCOTT.EMP Los registros deben estar separados por coma (,). El archivo deberá llamarse “empleados_scott.txt” y deberá ubicarse en el directorio /home/oracle.
2.- Una vez que el archivo haya sido generado, utilizar UTL_MAIL (otro package utilitario que viene con Oracle) para crear otro procedimiento almacenado llamado ENVIA_MAIL() que permita enviar al profesor el archivo como attach generado en el paso 1. En el subject del mensaje deberán colocar: “Taller 3: Alumno: <NOMBRE_ALUMNO>: Seccion DIURNA|NOCTURNA “. Los parametros del procedimiento ENVIA_MAIL tienen que ser:
p_nombre_archivo IN
P_directorio_archivo IN
p_nombre_alumno INtodos de tipo VARCHAR
3.- Integrar todo en un bloque PL/SQL que realice los pasos 1 y 2, y para volver a invocar el procedimiento ENVIA_MAIL para atachar el codigo PL/SQL que realizó toda la tarea.
Aqui les dejo un pequeño avance que pese a que no esta bueno del todo algo les servira, descarguenlo de aqui.
25 de sep 08: Lamentablemente me he quedado sin notebook como para subir el apunte tomado en clases, pero aqui les subo el pdf con el cual se realizó un pequeño resumen de PL/SQL
Conceptos de Programacion PL/SQL
Cap 2 Consideraciones de Diseño
######################################
AVISO: Prueba para el dia viernes 3 de octubre (Solemne).
######################################
10 de octubre: Algunos apuntes y sentencias de SQL
APUNTES
1.- Cuando se trabajan 2 sesiones paralelamente dentro de un usuario de la base de datos, los cambios realizados por un usuario no afectarán al otro hasta que se realice un commit, un ejemplo claro está cuando el usuario1 inserta registros dentro de una tabla, estos son guardados dentro de la base de datos pero el usuario2 NO los podrá ver puesto que el usuario1 no ha realizado el commit correspondiente, esto funciona asi para mantener la consistencia.
Para mas informacion averiguar sobre ACID (Atomicity, Consistency, Isolation and Durability).
http://es.wikipedia.org/wiki/ACID
2.- No se aceptan Primary keys duplicadas, eso debiese estar mas que claro.
Sentencias SQL
1.- Cambiar password:
alter user <nombre_de_usuario> identified by <nueva_password>;
2.- Desbloquear usuario:
alter user <nombre_de_usuario> account [ lock | unlock ];
3.- El siguiente comando trabaja a nivel de sesion, la cual permite que sea diferida o inmediata, esto quiere decir que los cambios se realizan al hacer un commit; o apenas se realiza una sentencia de insercion, actualizacion, etc.
alter session set contraint=[ immediate | deferrable ];
TALLER # 5
1.- CONECTARSE A USUARIO HR
2.- crea tabla DEPT2 de acuerdo al siguiente script
CREATE TABLE dept2
(id NUMBER(7),
name VARCHAR2(25));
3.- Poblar la tabla dept2 con datos de la tabla DEPARTMENTS
4.- Crear tabla emp2
CREATE TABLE emp2
(id NUMBER(7),
last_name VARCHAR2(25),
first_name VARCHAR2(25),
dept_id NUMBER(7));
DESCRIBE emp2
5.- Modifique emp2 para permitir largos de apellidos mas largos
6.- Confirme que tanto emp2, como dep2 estan el diccionario de Oracle
(use la vista USER_TABLES)
7.- Crear la tabla EMPLOYEES2 basADO en la estructura de la tabla EMPLOYEES.
Incluya solamente las columnas EMPLOYEE_ID, FIRST_NAME, LAST_NAME, SALARY, y
DEPARTMENT_ID.
dele los nombres siguientes a las columnas ID, FIRST_NAME, LAST_NAME, SALARY, y DEPT_ID,
respectivamente.
8.- Borre la tabla emp2
9.- Consulte la papelera de reciclaje (recyclebin)
10 recupere la tabla eliminada
11.- Borre la columna first_name de la tabla employees2
12 En la tabla employees2 marque la columna DEPT_ID como UNUSED
13 Elimine todas las columnas UNUSED de la tabla EMPLOYEES2
14 Agregue una constraint PRIMARY KEY en la tabla EMP2 sobre la columna ID. LA constraint
debe tener un nombre al momento de la creacion. Nombrela my_emp_id_pk
15.- Crear constraint PRIMARY KEY constraint para la tabla DEPT2 usando la columna ID.
La restriccion debe nombrase en la creacion. Nombre la constraint my_dept_id_pk.
16. Agregue un foreign key sobre la tabla EMP2 que asegure que los empleados
no estan asignados a departamentos inexistentes. Nombre la constraint my_emp_dept_id_fk.
17. Confirme que las resticciones fueron agregadas consultando la vista de diccionario USER_CONSTRAINTS.
Note los tipos y nombres de las constraints.
18. Display the object names and types from the USER_OBJECTS data dictionary view for the EMP2 and DEPT2 tables. Notice that the new tables and a new index were created.
If you have time, complete the following exercise:
19. Modify the EMP2 table. Add a COMMISSION column of the NUMBER data type, precision 2, scale 2. Add a constraint to the COMMISSION column that ensures that a commission value is greater than zero.
20. Drop the EMP2 and DEPT2 tables so that they cannot be restored. Verify the recycle bin.
21. Create the DEPT_NAMED_INDEX table based on the following table instance chart. Name the index for the PRIMARY KEY column as DEPT_PK_IDX.
6 de Noviembre:
Navegando por el ciber espacio encontre un blog, que si bien está orientado a Ubuntu especialmente, también contiene unos cuantos tips y aplicaciones de oracle sobre linux, aqui va el LINK:
bueno también aprovecho de decir que se nos viene la semana de pruebas y hay que estudiarse los ultimos documentos subidos a la intranet, pero de todos modos los cargare a rapidshare
capitulos desde el 3 al 8: descarga
9 de Diciembre: Capitulo 5 diapositiva 4 – Copying Rows from Another Table
Pues como explica la diapositiva, esta no usa la clausula VALUES y los números de las columnas del INSERT deben coincidir con los de la subquery.
Para que les quede mas claro aqui les dejo un ejemplo basado en sql server.
1> create table employee(
2> ID int,
3> name nvarchar (10),
4> salary int,
5> start_date datetime,
6> city nvarchar (10),
7> region char (1))
8> GO
1>
2> insert into employee (ID, name, salary, start_date, city, region)
3> values (1, 'Jason', 40420, '02/01/94', 'New York', 'W')
4> GO
(1 rows affected)
1> insert into employee (ID, name, salary, start_date, city, region)
2> values (2, ‘Robert‘,14420, ‘01/02/95‘, ‘Vancouver‘,’N‘)
3> GO
(1 rows affected)
1> insert into employee (ID, name, salary, start_date, city, region)
2> values (3, ‘Celia‘, 24020, ‘12/03/96‘, ‘Toronto‘, ‘W’)
3> GO
(1 rows affected)
1> insert into employee (ID, name, salary, start_date, city, region)
2> values (4, ‘Linda‘, 40620, ‘11/04/97‘, ‘New York‘, ‘N’)
3> GO
(1 rows affected)
1> insert into employee (ID, name, salary, start_date, city, region)
2> values (5, ‘David‘, 80026, ‘10/05/98‘, ‘Vancouver‘,’W‘)
3> GO
(1 rows affected)
1> insert into employee (ID, name, salary, start_date, city, region)
2> values (6, ‘James‘, 70060, ‘09/06/99‘, ‘Toronto‘, ‘N’)
3> GO
(1 rows affected)
1> insert into employee (ID, name, salary, start_date, city, region)
2> values (7, ‘Alison‘,90620, ‘08/07/00‘, ‘New York‘, ‘W’)
3> GO
(1 rows affected)
1> insert into employee (ID, name, salary, start_date, city, region)
2> values (8, ‘Chris‘, 26020, ‘07/08/01‘, ‘Vancouver‘,’N‘)
3> GO
(1 rows affected)
1> insert into employee (ID, name, salary, start_date, city, region)
2> values (9, ‘Mary‘, 60020, ‘06/09/02‘, ‘Toronto‘, ‘W’)
3> GO
(1 rows affected)
1>
2> select * from employee
3> GO
ID name salary start_date city region
———– ———- ———– ———————– ———- ——
1 Jason 40420 1994-02-01 00:00:00.000 New York W
2 Robert 14420 1995-01-02 00:00:00.000 Vancouver N
3 Celia 24020 1996-12-03 00:00:00.000 Toronto W
4 Linda 40620 1997-11-04 00:00:00.000 New York N
5 David 80026 1998-10-05 00:00:00.000 Vancouver W
6 James 70060 1999-09-06 00:00:00.000 Toronto N
7 Alison 90620 2000-08-07 00:00:00.000 New York W
8 Chris 26020 2001-07-08 00:00:00.000 Vancouver N
9 Mary 60020 2002-06-09 00:00:00.000 Toronto W
(9 rows affected)
1>
2> — Inserting Rows from Another Table
3>
4> INSERT INTO Employee (Name)
5> SELECT Name
6> FROM Employee
7> WHERE ID = 2
8> GO
(1 rows affected)
1>
2> select * from employee
3> GO
ID name salary start_date city region
———– ———- ———– ———————– ———- ——
1 Jason 40420 1994-02-01 00:00:00.000 New York W
2 Robert 14420 1995-01-02 00:00:00.000 Vancouver N
3 Celia 24020 1996-12-03 00:00:00.000 Toronto W
4 Linda 40620 1997-11-04 00:00:00.000 New York N
5 David 80026 1998-10-05 00:00:00.000 Vancouver W
6 James 70060 1999-09-06 00:00:00.000 Toronto N
7 Alison 90620 2000-08-07 00:00:00.000 New York W
8 Chris 26020 2001-07-08 00:00:00.000 Vancouver N
9 Mary 60020 2002-06-09 00:00:00.000 Toronto W
NULL Robert NULL NULL NULL NULL
(10 rows affected)
1>
2>
3> drop table employee
4> GO
1>
Pagina en Desarrollo
by Anger Rising.-
[...] Administración Oracle [...]
buenas tardes profe, no soy su alumna pero estoy bastante interesada en UTL_FILE y UTL_MAIL, si puede enviame ejemplos para ulizacion de estos Packages
y tambien si me puede ayudar a definir el directorio para enviar el archivo por email(especificamente donde se define)
Muchas Gracias por su ayuda
atentamente
Cristina
hola Cristina, la verdad no soy profesor jeje soy un simple estudiante que sigue por medio de este blog las clases del profesor Felipe Manriquez, por ahora te puedo recomendar las siguientes paginas:
http://www.psoug.org/reference/utl_file.html
http://www.psoug.org/reference/utl_mail.html
a mi me sirvieron y si no te queda claro me avisas para consultarle mas informacion a mi profesor antes de tenerminar el semestre
saludos
Anger Rising.-
Hola buenos dias, he encontrado esta pagina y me interesa mucho la administracion de oracle y me he bajado los documentos pero no puedo abrirlos ya que me pide contraseña. Me la podias suministrar?
Muchas gracias
Los PDF del profesor del DuocUC estan con password, puedes decir cual es la contraseña por favor.
Gracias. Muy buena tu página.
los passwords estan en sus casillas de correos que pusieron al escribir sus comentarios, saludos.-
Me gusta el blog, como puedo contribuir, si te sirven yo dispongo de los manuales de dba I, II , Practicas y Labs de Oracle 10g.
Saludos.
Ricardo.
hola Ricardo, lo que podemos hacer es que tu formes parte de los autores de angerrising y tu mismo poder redactar y subir los documentos, lo unico que tienes que hacer es crearte una cuenta en wordpress.con con la invitacion que te envié.
seria genial que pudiesemos compartir nuestros conocimientos a los demas, por ello te invito a unirte
bastian gutierrez
angerrising
Muy buen pagina
Amigo me podrias ayudar con el tema de realizar proceso e Packages de oracle
Gracias por los elogios.
pucha lamento no recordar muy bien de la materia, pero aqui tienes un link bastate bueno que habla de ello al respecto.
http://www.exforsys.com/tutorials/oracle-9i/oracle-packages.html
y me comprometo a añadir una explicacion sobre los packages dentro de los proximos dias.
suerte
Por fa el password. Gracias
mmm, bueno aqui el password: aldebaran
Hola la verdad esta muy interesante todo… pero no entiendo lo de los pass para poder leer los pdf ya demas de eso… se corta la descargal del vmware…. haber si me ayudas…. grais… y chevere le foro.
cuando tu abres el documento pdf te pedira una contraseña, que es la que mencioné anteriormente y en cuanto a la maquina virtual, trata de buscar centos oracle en google, talvez pilles una que tenga una descarga mas veloz
gracias por las visitas