ingeniero

Páginas: 6 (1354 palabras) Publicado: 12 de junio de 2014
3UiFWLFD  3/64/
3DVRV ,QLFLDOHV &UHDFLyQ GHO (QWRUQR
Lo primero que se llevó a cabo fue la creación del entorno. Esto se llevó a cabo
por medio de un usuario con privilegios DBA:
 &UHDFLyQ GH OD 7$%/(63$&( 868$5,26
Por medio del comando:
CREATE TABLESPACE "USUARIOS"
LOGGING
DATAFILE ’/oracle/app/oracle/oradata/USUARIOS.ora’ SIZE 50M
/

Se puede ver como el fichero se refiere auna ruta en la máquina UNIX.
 &UHDFLyQ GH  XVXDULRV
Por medio de 35 sentencias similares a esta:
create user alumnoXX
identified by alumnoXX
default tablespace USUARIOS
temporary tablespace temp
/

 2WRUJDU SULYLOHJLRV D ORV  XVXDULRV
Por medio de sentencias como las siguientes:
GRANT CONNECT TO alumnoXX
/

Para permitir a los usuarios conectarse a la BBDD.
GRANT CREATEPROCEDURE
/

TO alumnoXX

Para permitir a los usuarios crear PROCEDURES de Base de Datos.
ALTER USER alumnoXX QUOTA UNLIMITED ON USUARIOS
/

Para permitir a los usuarios almacenar objetos en la tablespace USUARIOS.

Pág. 1 de 8

Práctica 1 PL_SQL.doc

Para generar estos comandos con los 35 usuarios creados anteriormente se utilizó una
sentencia SQL que selecciona los nombres de los35 usuarios y crea las distintas
sentencias concatenando palabras SQL y nombres de usuarios. El siguiente, es un
ejemplo de este tipo de sentencia SQL:
set pages 0
spool d:\priv.sql
select ’GRANT CONNECT TO ’||username||’;’
from dba_users
where username like ’ALU%’
/
spool off
start d:\priv.sql

la primera línea elimina las cabeceras, la orden “spool” envía la salida al ficheroindicado a continuación (d:\priv.sql en el ejemplo). La sentencia SELECT concatena
(por medio del operador ||) el comando GRANT completo y el nombre de los 35
usuarios cuyo nombre comienza por “ALU”. La orden spool off cierra el fichero de
salida y la orden start lo ejecuta.
El fichero de salida contiene lo siguiente:
GRANT
GRANT
GRANT
GRANT
GRANT
GRANT
….
….
….

Pág. 2 de 8

CREATECREATE
CREATE
CREATE
CREATE
CREATE

PROCEDURE
PROCEDURE
PROCEDURE
PROCEDURE
PROCEDURE
PROCEDURE

TO
TO
TO
TO
TO
TO

ALUMNO1;
ALUMNO10;
ALUMNO11;
ALUMNO12;
ALUMNO13;
ALUMNO14;

Práctica 1 PL_SQL.doc

3UiFWLFD 64/ \ 3/64/
Cada uno de los usuarios creados en el apartado anterior se conecta a la base de
datos y lleva a cabo los siguientes pasos:
Para saber con queusuario estoy conectado a la BBDD puedo utilizar el
comando show user.
 &UHDFLyQ GH OD 7$%/$ HMHPSOR
Creamos una tabla que nos sirva de ejemplo:
create table
(numero
fecha
cadena
/

tabla
number,
date,
varchar2(10))

 /OHQDGR GH OD 7$%/$ HMHPSOR
Por medio del siguiente bloque PL anónimo llenamos la tabla con 100 registros:
begin
for a in 1..100 loop
insert into tabla
(numero,fecha,
cadena)
values
(a,
sysdate + a,
chr (a));
end loop;
end;
/

Con este ejemplo estamos utilizando un Bucle FOR, las funciones de columna
SYSDATE (que devuelve la fecha del día) y CHR (que devuelve el carácter
ASCII correspondiente al número indicado como parámetro).
Tras ejecutar el bloque PL la tabla tendrá 100 registros. No hay que olvidar
hacer COMMIT. Se puede comprobar sitiene las 100 filas con una sentencia
SQL como:
Select count(*) from tabla;

Pág. 3 de 8

Práctica 1 PL_SQL.doc

 %ORTXH 3/64/ FRQ FXUVRUHV
Por medio del siguiente bloque PL anónimo nos recorremos la tabla e
imprimimos un mensaje por cada uno de los 100 registros:
Set serveroutput on
DECLARE
--- Se definen las tres variables que nos permitirán
-- recibir los valores recuperadospor el CURSOR
-var1
tabla.numero%TYPE;
var2
tabla.fecha%TYPE;
var3
tabla.cadena%TYPE;
-- Se define el cursor (sentencia SELECT con nombre)
CURSOR tab_cursor IS
SELECT numero, fecha, cadena
FROM tabla;
BEGIN
-- Abre el cursor
OPEN tab_cursor;
LOOP
-- Recupera el siguiente registro en cada iteración
FETCH tab_cursor INTO var1,var2,var3;
EXIT WHEN tab_cursor%NOTFOUND;
-- Muestra...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Ingeniero
  • Ingeniero
  • Ingeniero
  • Ingeniero
  • Ingeniero
  • Ingeniero
  • Ingeniero
  • Ingeniero

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS