Está en la página 1de 92

ADMINISTRACION

SISTEMAS
GESTORES DE
BASES DE DATOS
(ASGBD)
Apuntes
y
Ejercicios
Administracin de sistemas gestores de Bases de datos.
Introduccin al lenguaje PL/SQL (Cap. 8)
Oracle incorpora un gestor PL/SQL (basado en lenguaje ADA), incorpora todas las caractersticas de
lenguajes de tercera generacin:
anejo de !ariables"
#structura $odular (procedi$ientos % &unciones)"
#structuras de control (bi&urcaciones, bucles % de$'s estructuras)"
(ontrol de e)cepciones"
Al$acena$iento en la *"D" (para su posterior ejecucin)"
Soporte para la progra$acin orientada a objetos (POD)"
La unidad de trabajo es el lo!ue, +ue es un conjunto de declaraciones, instrucciones % $ecanis$os de
gestin de errores % e)cepciones" #s la estructura b'sica caracterstica de todos los progra$as PL/SQL, tiene
tres ,onas clara$ente de&inidas:
-ona de declaraciones declaracin de !ariables, constantes, precedido por la clausula
D#(LA.#, es opcional"
(onjunto de instrucciones precedido por la clausula *#/01"
-ona de e)cepciones precedido por la clausula #2(#P30O1, es opcional ta$bi4n"
#je$plo: 5 D#(LA.#
6 declaraciones 7 8
*#/01
6 ordenes 7
5 #2(#P30O1
6 gestin de e)cepciones 7 8
#1D 9
La utili"acin de lo!ues supone una notable $ejora de rendi$iento, %a +ue se en!an los blo+ues
co$pletos al ser!idor para +ue sean procesados, en lugar de cada sentencia SQL" 3a$bi4n se pueden anidar:
D#(LA.#
:"
*#/01
:"""
D#(LA.# co$ien,o blo+ue interior (un D#(LA.# dentro de otro)
:""
*#/01
:""
#2(#P30O1
:""
#1D 9
:"
#2(#P30O1
:"""
#1D
#e$inicin de datos compatiles con SQL
PL/SQL dispone de tipos de datos co$patibles con los tipos utili,ados para las colu$nas de las tablas:
1;*#., <A.(=A.>, DA3#"
Las declaraciones de los datos deben ?acerse en la seccin de declaraciones:
(ontador 1;*#.> 9
1o$bre (=A. (>@) 9
1ue!o <A.(=A.> (AB) 9
*#/01
:""
PL/SQL per$ite declarar una !ariable del $is$o tipo +ue otra !ariable o +ue una colu$na de una tabla
$ediante el atributo %&'P("
3a$bi4n se puede declarar una !ariable para guardar una &ila co$pleta de una tabla $ediante el atributo
%)*+&'P("
(structuras de control alternati,as.
Alternati,a simple (0C)
Si la condicin se cu$ple, se ejecutan las instrucciones +ue siguen a la clausula 3=#1
0C 6condicin7 3=#1
instrucciones9
#1D 0C9
Alternati,a dole (0C #LS#)
Si la condicin se cu$ple, se ejecutan las instrucciones +ue siguen a la clausula 3=#1, en caso
contrario, se ejecutaran las instrucciones +ue siguen a la clausula #LS#
0C 6condicin7 3=#1
instrucciones9
#LS#
instrucciones9
#1D 0C9
Alternati,a m-ltiple (#LS0C)
#!alDa co$en,ando desde el principio cada condicin, ?asta encontrar alguna condicin +ue se
cu$pla, en cu%o caso se ejecutara las instrucciones +ue siguen al 3=#1 correspondiente, la
clausula #LS# es opcional % se ejecuta si no se ?a cu$plido ninguna de las anteriores"
0C 6condicin7 3=#1
instrucciones9
#LS0C 6condicion>7 3=#1
instrucciones9
#LS0C 6condicionE7 3=#1
instrucciones9
:""
#LS#
instrucciones9
#1D 0C9
Alternati,a m-ltiple ((AS# de co$probacin)
(alcula el resultado de la e)presin +ue sigue a la clausula (AS#, a continuacin co$prueba si el
!alor obtenido coincide con alguno d ellos !alores especi&icados detr's de las clausulas F=#1,
en cu%o caso ejecutara la instruccin/es correspondientes, #LS# es opcional"
(AS# 56e)presin78
F=#1 6testA7 3=#1
6instruccionesA79
F=#1 6test>7 3=#1
6instrucciones>79
F=#1 6testE7 3=#1
6instruccionesE79
5#LS#
6otrasGinstrucciones798
#1D (AS#9
Alternati,a m-ltiple ((AS# de bDs+ueda)
#!alDa, co$en,ando desde el principio, cada condicin, ?asta encontrar alguna condicin +ue se
cu$pla, en cu%o caso ejecutara las instrucciones +ue siguen al 3=#1, el #LS# es opcional"
(AS#
F=#1 6condicionA7 3=#1
6instruccionesA79
F=#1 6condicion>7 3=#1
6instrucciones>79
F=#1 6condicionE7 3=#1
6instruccionesE79
5#LS#
6otrasGinstrucciones798
#1D (AS#9
(structuras de control repetiti,as.
.ientras (F=0L#)
Se e!alDa la condicin % si se cu$ple, se ejecutaran las instrucciones del bucle" #l bucle se seguir'
ejecutando $ientras se cu$pla la condicin, es una condicin de continuacin"
F=0L# 6condicin7
LOOP
instrucciones9
#1D LOOP9
Para (CO.)
6!ariablecontrol7 es la !ariable de control del bucle +ue se declara (*01A.HI013#/#.), esta
!ariable to$a el !alor especi&icado en !alorinicio % se repite incre$ent'ndose en A ?asta el !alor&inal"
CO. 6!ariablecontrol7 01 6!alorinicio7 : 6!alor&inal7
LOOP
instrucciones9
#1D LOOP9
Se utili,a cuando se conoce o se puede conocer el nu$ero de !eces +ue se debe ejecutar el bucle"
Para (CO.) en incre$entos negati!os"
CO. 6!ariablecontrol7 01 .#<#.S# 6!alorinicio7 : 6!alor&inal7
LOOP
instrucciones9
#1D LOOP9
Donde 6!ariablecontro7 es la !ariable de control del bucle +ue se declara (tipo
*01A.HI013#/#.), esta !ariable to$ara el !alor especi&icado en !alor&inal % se repetir'
decre$entandose en A ?asta el !alor inicial"
.especto de la !ariable de control en cual+uiera de los CO.:
1o ?a% +ue declararla
#s local al bucle % no accesible desde el e)terior
Se puede usar dentro del bucle en una e)presin pero no se le pueden asignar !alores"
Iterar... $in iterar salir si...(LOOP)
Se trata de un bucle +ue se repetir' inde&inida$ente ?asta +ue se encuentre una instruccin #203 sin
condicin o ?asta +ue se cu$pla la condicin asociada a la clausula #203 F=#1" #s una condicin
de salida"
LOOP
instrucciones9
#203 F=#1 6condicin79
instrucciones9
#1D LOOP9
#esde PL/SQL se puede ejecutar cual!uier orden de manipulacin de datos.
(jemplos/
D#L#3# C.O clientes F=#.# ni& J !Ini&9
;PDA3# productos S#3 stocKIdisponible :J stocKIdisponible L unidadesI!endidas F=#.#
productoIno J !Iproducto9
/0 se utili,a cuando se !a a ?acer una operacin"
PL/SQL per$ite ejecutar cual+uier consulta ad$itida por la base de datos" Pero cuando se ejecuta la consulta,
el resultado no se $uestra auto$'tica$ente en el ter$inal del usuario, sino +ue se +ueda en un 'rea de
$e$oria deno$inada cursor, a la +ue accedere$os utili,ando !ariables"
;tili,are$os una o $as !ariables (declaradas pre!ia$ente) junto con la clausula 013O para poder acceder a
los datos de!ueltos por nuestra consulta (la consulta solo debe de!ol!er una &ila o dar' error)"
S#L#(3 6colu$na/s7 013O 6!ariable/s7 C.O 6tabla7 F=#.# :""89
1estin de e2cepciones.
La e)cepciones sir!en para tratar errores % $ensajes de a!iso"
1OIDA3AICO;1D una orden de tipo S#L#(3 013O no ?a de!uelto ningDn !alor"
3OOIA1HI.OFS una orden S#L#(3 013O ?a de!uelto $as de una &ila"
La seccin (3C(P&I*4 es la encargada de gestionar $ediante los $anejadores (F=#1) las e)cepciones
+ue puedan producirse durante la ejecucin de un progra$a"
(uando PL/SQL detecta una e)cepcin, auto$'tica$ente pasa el control del progra$a a la seccin
#2(#P30O1 del blo+ue PL/SQL"
PL/SQL per$ite +ue el progra$ador de&ina sus propias e)cepciones"
Caso practico: <isuali,a el apellido % el o&icio del e$pleado con nu$ero MN@@
#(CLA)(
!Iape <A.(=A.> (A@)9
!Io&icio <A.(=A.>(A@)9
B(1I4
S#L#(3 apellido, o&icio 013O !Iape, !Io&icio C.O #PL#ADOS F=#.# #PI1O J MN@@ 9
D*SIO;3P;3.P;3IL01# (!Iape OO PQP OO !Io&icio) 9
(3C(P&I*4
F=#1 1OIDA3AICO;1D 3=#1
.A0S#IAPPL0(A30O1I#..O. (G>@@@@,P#..O. no ?a% datosP)9
F=#1 3OOIA1HI.OFS 3=#1
.A0S#IAPPL0(A30O1I#..O. (G>@@@@,P#..O. de$asiados datosP)9
F=#1 O3=#.S 3=#1
.A0S#IAPPL0(A30O1I#..O. (G>@@@@,P#..O. en la aplicacinP)9
(4# 5
/ si se pone al &inal el blo+ue se al$acena en el bu&er % luego se ejecuta
. si se pone al &inal el blo+ue se al$acena en el bu&er pero no se ejecuta ?asta poner / o )64"
#l resultado es:
(structura modular7 tipos de programas !ue se ejecutan en PL/SQL/
Blo!ues annimos (los eje$plos !istos)
no tiene no$bre, se ejecutan pero no se guardan
La ,ona declaraciones co$ien,a con D#(LA.#
Son las estructuras de eje$plo !istas, pero sin utili,acin real"
Suprogramas: (Procedi$ientos % &unciones)
Son blo+ues PL/SQL +ue tienen no$bre por el +ue se in!ocan desde otros progra$as"
Se co$pilan, al$ac4n % ejecutan en la base de datos"
3ienen una cabecera +ue inclu%e el no$bre del subprogra$a"
Se indica si es &uncin o o procedi$iento, as co$o los par'$etros"
La ,ona de declaraciones % el blo+ue del progra$a e$pie,an con 0S o AS"
Pueden ser de dos tipos Procedimientos % 8unciones"
#isparadores de ases de datos / &rigger"
Son progra$as al$acenados en la base de datos +ue se asocian a un e!ento"
Se ejecutan auto$'tica$ente al producirse deter$inados ca$bios en la tabla asociada"
Son $u% Dtiles para controlar los ca$bios +ue suceden en la base de datos
#je$plo:
(.#A3# O. .#PLA(# 3.0//#. auditIborradoIe$ple
*#CO.# D#L#3#
O1 e$ple
CO. #A(= .OF
*#/01
D*SIO;3P;3"P;3IL01# (P*O..ADO #PL#ADOP
O O PQP O O :old"e$pIno
O O PQP O O :old"apellido)9
#1D9
Oracle utili,a el pa+uete D*SIO;3P;3 con &ines de depuracin" #ste inclu%e entre otros el procedi$iento
P6&9LI4( +ue per$ite !isuali,ar te)tos en la pantalla (para +ue &uncione correcta$ente la !ariable de
entorno S():()*6&P6& deber' estar en *4)"
SQL7 S#3 S#.<#.O;3P;3 O1
Pode$os guardar el blo+ue del bu&&er con la orden SA:(:
SA<# no$bre&ic?ero 5.#PLA(#8 .#PLA(# se usa si %a e)ista el &ic?ero"
Para cargar un blo+ue de un &ic?ero en el bu&&er SQL se ?ace con 1(&:
/#3 no$bre&ic?ero una !e, cargado se ejecuta con )64 o /
3a$bi4n se puede cargar % ejecutar con una sola orden con S&A)& o ;:
S3A.3 no$bre &ic?ero
Rno$bre&ic?ero
Procedimiento/
P.O(#D;.# 6no$breprocedi$iento7
5( 6lista de par'$etros7 )8
0S
56declaracin objetos locales798
*#/01
6instrucciones79
5#2(#P30O1
6e)cepciones798
#1D 56no$breprocedi$iento78 9
8uncin/
C;1(30O1 6no$bre&uncion7
5( 6lista de par'$etros7 )8
.#3;.1 6tipo !alor de!uelto7
0S
56declaracin objetos locales798
*#/01
6instrucciones79
.#3;.1 6e)presin79
5#2(#P30O1
6e)cepciones798
#1D 56no$bre&uncion78 9
(jemplo/
C)(A&( *) )(PLAC(
P)*C(#6)( !erIdepart 5nu$depart 46.B()8
AS
!Idno$bre <A.(=A.>(AS)9
!Ilocalidad <A.(=A.>(AS)9
B(1I4
S(L(C& dno$bre, loc I4&* !Idno$bre, !Ilocalidad
8)*. depart
+<()( deptIno J nu$depart9
#B.S9*6&P6&.P6&9LI4( (P1u$ depart:P O O nu$depart O O P Q 1o$bre dep:P O O !Idno$bre O O
P Q Localidad: P O O !Ilocalidad) 9
(3C(P&I*4
+<(4 4*9#A&A98*64# &<(4
#B.S9*6&P6&.P6&9LI4( (P1o encontrado departa$ento P) 9
(4# !erIdepart 9
/
Para ejecutar este procedi$iento creado se ?ace con #2#(;3# no$bre(dato), en $odo ter$inal, eje$plo:
(3(C6&( !erIdepart(>@)9 o B(1I4 !erIdepart(>@) (4# 9 en $odo gr'&ico"
(olocar el s$bolo = delante de una !ariable indica +ue se pedir' la introduccin del dato especi&icado"
8undamentos del lenguaje PL/SQL (Cap. >)
Pl/SQL dispone de los $is$os datos +ue SQL ade$as de otros propios, estos datos se pueden clasi&icar en:
#scalares Al$acenan !alores si$ples
Car?cter/cadena:
(=A.(L) (adenas de caracteres de longitud &ija, posiciones no usadas son blancos
1(=A. (L) si$ilar al anterior
<A.(=A.> (L) (adenas de caracteres de longitud !ariable
1<A.(=A.> (L)
LO1/ (L) Al$acena cadenas de longitud !ariable, se debe especi&icar el $')i$o
.AF (L) Al$acena datos binarios de longitud &ija
LO1/ .AF (L) Al$acena datos binarios de longitud !ariable
.OF0D Al$acena identi&icadores de direcciones de &ila
;.OF0D (L) Al$acena identi&icadores de direcciones de &ila, especi&icando nT b%tes
4um@rico
1;*#. (P, #) 1u$4rico, P nu$ero total de dgitos, # nu$ero deci$ales
*01A.HI013#/#. 1u$4rico entero, se al$acena en $e$oria en &or$ato binario
PLSI013#/#. Si$ilar al anterior pero $as r'pido/da error si desborda$iento
*01A.HIDO;*L# Para el '$bito cient&ico con c'lculos $u% precisos % co$plejos
*01A.HICLOA3 Para el '$bito cient&ico con c'lculos $u% precisos % co$plejos
Boolean Al$acena !alores lgicos, 3.;#, CALS#, 1;LL
8ecAa/Aora
DA3# Al$acena &ec?as inclu%endo la ?ora
30#S3AP Al$acena &ec?as inclu%endo la ?ora % &racciones de segundo
013#.<AL 0nter!alo de tie$po entre &ec?as
*tros
.OF0D
;.OF01
(o$puestos co$puestos de otros si$ples
3ablas inde)adas
3ablas anidadas
<arra%s
Objetos
.e&erencias di&ieren de los anteriores por caractersticas de $anejo % al$acena$iento"
.#C (;.SO. Son re&erencias a cursores
.#C Son punteros a objetos
LO* al$acenan objetos de grandes di$ensiones (de ?asta A>U terab%tes, sustitu%en a LO1/ .AF)
Los Identi$icadores se utili,an para no$brar los objetos +ue inter!ienen en un progra$a:
<ariables, constantes, cursores, e)cepciones, procedi$ientos, &unciones, eti+uetas""""
Pueden tener entre A % E@ caracteres de longitud
#l pri$er car'cter ?a de ser una letra
#l resto de caracteres ?an de ser al&anu$4ricos
1o pueden incluir signos de puntuacin, espacios, etc"
1o se di&erencia entre $a%Dsculas o $inDsculas"
La opcin #(8A6L& o /0 sir!e para asignar !alores por de&ecto a la !ariable tras su creacin"
La opcin 4*& 46LL &uer,a a +ue la !ariable tenga sie$pre un !alor"
Atributo %&'P( declara una !ariable del $is$o tipo +ue otra (no$breI!ariable no$breIobjetoV3HP#9)
Atributo %)*+&'P( declara una !ariable de registro cu%os ca$pos se corresponden con las colu$nas de
una tabla (no$breI!ariable no$breIobjetoV.OF3HP#9)"
Las ,ariales se crean al co$ien,o del blo+ue % dejan de e)istir una !e, &inali,ada la ejecucin del blo+ue
en +ue ?an sido declaradas, el '$bito de una !ariable inclu%e el blo+ue en el +ue se declara % sus blo+ues
?ijos"
Las !ariables declaradas en los blo+ues ?ijos no son accesibles desde el blo+ue padre"
Al declarar constantes se deber' asignar un !alor: 6no$breIconstante7 (O1S3A13 6tipo7 :J 6!alor7 9
Los literales representan !alores constantes directa$ente, se utili,an para !isuali,ar !alores"
(ar'cter PAP, PaP, PQP
(adena P(liente 1T:P
1u$4rico BWM, >">E, GU"MB
*ooleano !Icobrado :J 3.;#9
Cec?a/?ora DA3# P>@@BGAAG@NP
Los operadores se utili,an para asignar !alores % &or$ar e)presiones:
Asignacin /0 Asigna un !alor a una !ariable #dad :J AN
(oncatenacin BB ;ne dos o $as cadenas P*uenosP OO PdiasP
(o$paracin 0 , C0 , D , E , D0 , E0 , I4 , IS 46LL , LIF( , B(&+((4
Arit$4ticos G , H , I , / , II
&A L &> De!uel!e el nu$ero de das +ue ?a% entre las &ec?as &A % &>"
& X n De!uel!e una &ec?a +ue es el resultado de su$ar n das a la &ec?a &"
& G n De!uel!e una &ec?a +ue es el resultado de restar n das a la &ec?a &"
Lgicos A4# , *) , 4*&
Otros indicadores
( ) Deli$itador de e)presiones
J J Deli$itador de literales de cadena
K K Deli$itador de identi&icadores
DD EE #ti+uetas
/I I/ Deli$itador co$entarios de !arias lineas
HH 0ndicador de co$entario de una linea
% 0ndicador de atributo (3HP#, .OF3HP#, CO;1D, :)
/ 0ndicador de !ariables de trans&erencia
7 Separador de ite$ de lista
5 3er$inador de instruccin
; 0ndicador de enlace de bases de datos
Administracin de *racle (Cap. LM)
Las tareas del Administrador de la *ase de datos son:
0nstalar Oracle"
DiseYar % crear una base de datos"
Arrancar % detener la *ase de Datos"
(rear % controlar usuarios"
(onceder pri!ilegios"
/estionar el espacio"
=acer copias de seguridad % recuperar la *ase de datos"
Componentes de la Base de #atos/
Arc?i!os de Datos (Database &iles)" (ontienen la in&or$acin de la base de datos (datos de usuario %
datos de siste$a), es necesario crear un espacio para las tablas (tablespace) % dentro de el crear las
tablas, tablespaces por de&ecto +ue se crean al instalar Oracle:
SHS3#" (ontiene la in&or$acin +ue necesita Oracle para gestionarse a si $is$a"
;S#.S" (ontiene in&or$acin personal de los usuarios"
3#P" (ontiene las tablas te$porales"
;1DO3*SA" #s donde Oracle guarda la in&or$acin de des?acer"
.egistros de re?acer o .edo log (el registro de las transacciones)" Son arc?i!os de datos el los +ue
Oracle registra los ca$bios +ue se e&ectDan sobre los datos (01S#.3, ;PDA3# % D#L#3#) de la
base de datos dentro de la cac?e de bu&&ers de la base de datos, estos arc?i!os se utili,an en
situaciones de &allo para recuperar datos"
Arc?i!os de control ((ontrol &iles)" (ontienen in&or$acin sobre los arc?i!os asociados con una base
de datos Oracle" 3odas las $odi&icaciones i$portantes +ue se ?agan en la estructura de la base de
datos se registran en el arc?i!o de control" #stos arc?i!os $antienen la integridad de la base de datos"
La seguridad de la ase de datos se clasi&ica en dos categoras:
Seguridad del siste$a" (ontrola el acceso % uso de la base de datos a ni!el del siste$a"
Seguridad de los datos" (ontrolan el acceso % uso de la base de datos a ni!el de objetos (tabla, !ista,
etc")"
;n usuario es un no$bre de&inido en la base de datos +ue se puede conectar a ella % acceder a deter$inados
objetos segDn ciertas condiciones +ue de&ine el ad$inistrador" Asociado a cada usuario de la base de datos
?a% un es+ue$a con el $is$o no$bre"
#s+ue$a es una coleccin lgica de objetos (tablas, !istas, secuencias, sinni$os, indices, cluster,
procedures, &unciones, pa+uetes, etc"), por de&ecto cada usuario accede a los objetos de su es+ue$a %
puede acceder a los objetos de otro usuario si este le concede pri!ilegios"
Creacin de usuarios" Al instalar la base de datos se crean dos usuarios con el pri!ilegio de ad$inistrador de
la base de datos (#BA), SHS % SHS3#"
S'S es el propietario de las tablas del diccionario de datos % solo nos conectare$os con este usuario
cuando las instrucciones de Oracle lo e)ijan"
S'S&(. se crea para las tareas ad$inistrati!as de la base de datos" 1o se suelen crear tablas de
usuario en el es+ue$a SHS3#" Para crear otros usuarios es preciso conectarse co$o usuario
SHS3#"
#l comando para crear usuarios es:
(.#A3# ;S#. no$breIusuario 0D#130C0#D *H cla!e
D#CA;L3 3A*L#SPA(# espacioItabla
3#PO.A.H 3A*L#SPA(# espacioItabla
Q;O3A (Z/) O ;1L003#D O1 espacioItabla
P.OC0L# per&il 9
:istas con in$ormacin de usuarios:
;S#.I;S#.S in&or$acin usuario actual"
ALLI;S#.S in&or$acin de todos los usuarios"
.odi$icacin de usuarios:
AL3#. ;S#. no$breIusuario
0D#130C0#D *H cla!e
D#CA;L3 3A*L#SPA(# espacioItabla
3#PO.A.H 3A*L#SPA(# espacioItabla
Q;O3A (Z/) O ;1L003#D O1 espacioItabla
P.OC0L# per&il 9
Borrado de usuarios:
D.OP ;S#. usuario 5(AS(AD#8 9
la opcin (AS(AD# supri$e todos los objetos del usuario antes de borrarlo"
;n Pri,ilegio es la capacidad de un usuario dentro de la base de datos para reali,ar deter$inadas operaciones
o acceder a deter$inados objetos de otros usuarios"
.oles (&unciones)
(O11#(3 AL3#. S#SS0O1, (.#A3# (L;S3#., (.#A3# DA3A*AS# L01Z, (.#A3#
S#Q;#1(#, (.#A3# S#SS0O1, (.#A3# SH1O1H, (.#A3# 3A*L# %
(.#A3# <0#F"
.#SO;.(# (.#A3# (L;S3#., (.#A3# 01D#23HP#, (.#A3# OP#.A3O., (.#A3#
P.O(#D;.#, (.#A3# 3A*L#, (.#A3# S#Q;#1(#, (.#A3# 3.0//#. %
(.#A3# 3HP#"
D*A Posee todos los pri!ilegios de siste$a"
Pri!ilegios sobre los objetos"
AL3#. (3abla % Secuencia)
D#L#3# (3abla, <ista)
#2#(;3# (Procedure)
01D#2 (3abla)
01S#.3 (3abla, <ista)
.#C#.#1(#S (3abla)
S#L#(3 (3abla, <ista, Secuencia)
;PDA3# (3abla, <ista)

Pri!ilegios del siste$a


(.#A3# P.O(#D;.# (rear procedi$ientos % &unciones"
(.#A3# P.OC0L# (rear per&il de usuario"
AL3#. P.OC0L# odi&icar per&il"
D.OP P.OC0L# *orrar per&il"
(.#A3# S#SS0O1 (onectarse a la base de datos"
AL3#. S#SS0O1
(.#A3# 3A*L# (rear tablas en nuestro es+ue$a"
(.#A3# 3A*L#SPA(#
AL3#. 3A*L#SPA(#
(.#A3# ;S#.
AL3#. ;S#.
D.OP ;S#.
(.#A3# <0#F
H $uc?os $as"""""""
La orden para dar pri,ilegios sore los ojetos es /.A13:
/.A13 pri!"objeto, pri!"objeto :" O ALL P.0<0L#/#S
colu$na, colu$na :""
O1 usuario"objeto
3O usuario O rol O P;*L0( , usuario O rol O P;*L0(
F03= /.A13 OP30O1 9
La orden para dar pri,ilegios del sistema es /.A13 de la siguiente $anera:
/.A13 pri!ilegio O rol, pri!ilegio O rol
3O usuario O rol O P;*L0( , usuario O rol O P;*L0(
F03= AD01 OP30O1 9
)etirada de pri,ilegios sore ojetos"
.#<OZ# pri!"objeto, pri!"objeto :" O ALL P.0<0L#/#S
O1 usuario"objeto
C.O usuario O rol O P;*L0( , usuario O rol O P;*L0( 9
)etirada de pri,ilegios de sistema"
.#<OZ# pri!Isiste$a O rol , pri!Isiste$a O rol :"
C.O usuario O rol O P;*L0( , usuario O rol O P;*L0( :" 9
:istas con in$ormacin de los pri,ilegios (S#L#(3 Q C.O :"")
S#SS0O1IP.0<S Pri!ilegios del usuario acti!o"
;S#.ISHSIP.0<S Pri!ilegios de siste$a asignado al usuario"
D*AISHSIP.0<S Pri!ilegios de siste$a asignados a los usuarios o a los roles"
;S#.I3A*IP.0<S (oncesiones sobre objetos +ue son propiedad del usuario,
concedidos o recibidos"
;S#.I3A*IP.0<SIAD# (oncesiones sobre objetos +ue son propiedad del usuario
(asignadas)"
;S#.I3A*IP.0<SI.#(D (oncesiones sobre objetos +ue recibe el usuario"
;S#.I(OLIP.0<S (oncesiones sobre colu$nas en las +ue el usuario es el
propietario, asigna el pri!ilegio o lo recibe"
;S#.I(OLIP.0<SIAD# 3odas las concesiones sobre colu$nas de objetos +ue son
propiedad del usuario"
;S#.I(OLIP.0<SI.#(D (oncesiones sobre colu$nas recibidas por el usuario"
)oles, un rol engloba un conjunto de pri!ilegios % este puede asignarse a uno o !arios usuarios" #l &or$ato
para crear un rol es:
(.#A3# .OL# no$bre.OL 9
(onceder pri!ilegios a los roles"
/.A13 S#L#(3, 01S#.3 O1 #PL# 3O A((#SO 9
/.A13 01S#.3 O1 D#PA.3 3O A((#SO 9
/.A13 (.#A3# S#SS0O1 3O A((#SO 9
(onceder el rol a un usuario:
/.A13 A((#SO 3O usuario 9
Supresin de un rol"
D.OP .OL# no$bre.OL 9
#stablecer un rol por de&ecto"
AL3#. ;S#. usuario D#CA;L3 .OL# no$bre.OL 9
In$ormacin sore roles en el diccionario de datos"
.OL#ISHSIP.0<S Pri!ilegios del siste$a asignados a roles"
.OL#I3A*IP.0<S Pri!ilegios sobre tablas aplicados a roles"
.OL#I.OL#IP.0<S .oles asignados a otros roles"
S#SS0O1I.OL#S .oles acti!os para el usuario"
;S#.I.OL#IP.0<S .oles asignados al usuario"
Per&iles, es un conjunto de li$ites a los recursos de la base de datos, si no se crean per&iles se utili,a el per&il
por de&ecto +ue especi&ica recursos ili$itados"
(.#A3# P.OC0L# no$breIper&il L003 par'$etrosIrecursos 9
Los recursos son:
S#SS0O1SIP#.I;S#. 1u$ero de sesiones $Dltiples concurrentes per$itidas por
no$bre de usuario"
(O11#(3I30# 0ndica el nu$ero de $inutos +ue puede estar una sesin
conectada"
0DL#I30# 0ndica el nu$ero de $inutos +ue puede estar una sesin
conectada sin ser utili,ada de &or$a acti!a"
CA0L#DILO/01IA33#P3S 1u$ero de intentos de acceso sin 4)ito consecuti!os +ue
producir' el blo+ueo de la cuenta"
H otros tantos $as :"""
0n&or$acin sobre los per&iles:
D*AIP.OC0L#S
*orrado de un per&il"
D.OP P.OC0L# no$breIper&il 5(AS(AD#8 9
Administracin de *racle (Cap. LN)
;n talespace es una unidad lgica de al$acena$iento de datos representada &sica$ente por uno o $as
arc?i!os de datos"
Para crear un tablespace se usa la orden (.#A3# 3A*L#SPA(#"
(.#A3# 3A*L#SPA(# tablespaceA
DA3AC0L# [arc?A\ 5S0-# entero 5ZO8
5.#;S#8
5,[arc?>\ 5S0-# entero 5ZO8
5.#;S#8:
5D#CA;L3 S3O.A/#
(
01030AL ta$aYo
1#23 ta$aYo
01#23#13S ta$aYo
#2#23#13S ta$aYo
P(301(.#AS# !alor
)8
5O1L01# O OCL01#8 9
Para borrar un tablespace se usa la orden
D.OP 3A*L#SPA(# no$breItablespace
Descone)ion de un tablespace"
AL3#. 3A*L#SPA(# tablespaceA
]O1L01# O OCCL01# 51O.AL O 3#PO.A.H O 01#D0A3#8^ 9
Ejercicio. Gimnasio
Supongamos que tenemos una Base de Datos denominada GIMNASIO formada por las siguientes tablas:
PAGOS:
(CODIGO_SA!IO "A!C#A!$ (%& NO N'O
NM(!O_M(S NMB(! ($& NO N'O
CO)A NMB(! (%&
OBS(!"ACION(S "A!C#A!$ (*++&
C'A"( ,!IMA!IA (CODIGO_SA!IO- NM(!O_M(S&
C'A"( (.)(!NA (CODIGO_SA!IO& que referen/ia a SA!IOS (NM_SOCIO&
USUARIOS:
(NM_SOCIO "A!C#A!$ (%& NO N'O
DNI "A!C#A!$ (0& NO N'O
NOMB!( "A!C#A!$ ($+&
A,(''IDOS "A!C#A!$ (1+&
2O)OG!A2IA 'ONG !A3
DOMICI'IO "A!C#A!$ (4+&
'OCA'IDAD "A!C#A!$ (*+&
C, "A!C#A!$ (*&
2(C#A_NACIMI(N)O DA)(
)('(2ONO "A!C#A!$ ($+&
)A5I''A "A!C#A!$ (6*&
#O!A!IO "A!C#A!$ (6*&
2(C#A_A')A DA)(
2(C#A_BA7A DA)(
CO)A_SOCIO NMB(! (%&
CO)A_2AMI'IA! NMB(! (%&
,AGA_BANCO C#A! NO) N''
CODIGO_BANCO NMB(! (8&
C(N)A NMB(! (6+&
DIGI)O_CON)!O' NMB(! ($&
OBS(!"ACION(S "A!C#A!$ (*++&
C'A"( ,!IMA!IA (NM_SOCIO&
C'A"( A')(!NA)I"A (DNI&
C'A"( (.)(!NA (CODIGO_BANCO& que referen/ia a BANCOS ((N)_SC&
ACTIVIDADES
( CODIGO_AC)I"IDAD "A!C#A!$ (%& NO N'O
D(SC!I,CION "A!C#A!$ (*+&
CO)A NMB(! (%&
C'A"( ,!IMA!IA (CODIGO_AC)I"IDAD&
BANCOS:
((N)_SC NMB(! (8& NO N'O
NOMB!( "A!C#A!$ (*+&
DI!(CCION "A!C#A!$ (*+&
'OCA'IDAD "A!C#A!$ (1+&
)('(2ONOS "A!C#A!$ (1+&
C'A"( ,!IMA!IA ((N)_SC&
ACTIVIDADES_USUARIOS:
(CODIGO_AC)I"IDAD "A!C#A!$ (%& NO N'O
CODIGO_SA!IO "A!C#A!$ (%& NO N'O
2(C#A_A')A DA)(-
2(C#A_BA7A DA)(-
C'A"( ,!IMA!IA (CODIGO_AC)I"IDAD- CODIGO_SA!IO&-
C'A"( (.)(!NA (CODIGO_AC)I"IDAD& que referen/ia a AC)I"IDADAD(S
(CODIGO_AC)I"IDAD&
C'A"( A7(NA (CODIGO_SA!IO& que referen/ia a SA!IOS (NM_SOCIO&
1 Crear as !a"as:
CREATE TAB#E BANCOS
((N)_SC NMB(! (8& NO) N''-
NOMB!( "A!C#A!$ (*+&-
DI!(CCION "A!C#A!$ (*+&-
'OCA'IDAD "A!C#A!$ (1+&-
)('(2ONOS "A!C#A!$ (1+&-
CONS)!AIN) BANCOS_,9 ,!IMA!: 9(:((N)_SC&& ;
CREATE TAB#E SA!IOS
(NM_SOCIO "A!C#A!$ (%& NO) N''-
DNI "A!C#A!$ (0& NO) N''-
NOMB!( "A!C#A!$ ($+&-
A,(''IDOS "A!C#A!$ (1+&-
DOMICI'IO "A!C#A!$ (4+&-
'OCA'IDAD "A!C#A!$ (*+&-
C, "A!C#A!$ (*&-
2(C#A_NACIMI(N)O DA)(-
)('(2ONO "A!C#A!$ ($+&-
)A5I''A "A!C#A!$ (6*&-
#O!A!IO "A!C#A!$ (6*&-
2(C#A_A')A DA)(-
2(C#A_BA7A DA)(-
CO)A_SOCIO NMB(! (%&-
CO)A_2AMI'IA! NMB(! (%&-
,AGA_BANCO C#A! NO) N''-
CODIGO_BANCO NMB(! (8&-
C(N)A NMB(! (6+&-
DIGI)O_CON)!O' NMB(! ($&-
OBS(!"ACION(S "A!C#A!$ (*++&-
CONS)!AIN) SA!IOS_,9 ,!IMA!: 9(: (NM_SOCIO&-
CONS)!AIN) SA!IOS_29 2O!(IGN 9(: (CODIGO_BANCO& !(2(!(NC(S BANCOS
((N)_SC& ON D('()( CASCAD(&;
CREATE TAB#E AC)I"IDAD(S
( CODIGO_AC)I"IDAD "A!C#A!$ (%& NO) N''-
D(SC!I,CION "A!C#A!$ (*+&-
CO)A NMB(! (%&-
CONS)!AIN) AC)I"IDAD(S_,9 ,!IMA!: 9(: (CODIGO_AC)I"IDAD&& ;
CREATE TAB#E AC)I"IDAD(S_SA!IOS
(CODIGO_AC)I"IDAD "A!C#A!$ (%& NO) N''-
CODIGO_SA!IO "A!C#A!$ (%& NO) N''-
2(C#A_A')A DA)(-
2(C#A_BA7A DA)(-
CONS)!AIN) AC)I"IDADAD(S_SA!IOS_,9 ,!IMA!: 9(:
(CODIGO_AC)I"IDAD-CODIGO_SA!IO&-
CONS)!AIN) AC)I"IDADAD(S_SA!IOS_29_SA!IOS 2O!(IGN 9(:
(CODIGO_SA!IO& !(2(!(NC(S SA!IOS (NM_SOCIO& ON D('()( CASCAD(-
CONS)!AIN) AC)I"IDADAD(S_SA!IOS_29 2O!(IGN 9(: (CODIGO_AC)I"IDAD&
!(2(!(NC(S AC)I"IDAD(S (CODIGO_AC)I"IDAD& ON D('()( CASCAD(& ;
CREATE TAB#E ,AGOS
(CODIGO_SA!IO "A!C#A!$ (%& NO) N''-
NM(!O_M(S NMB(! ($& NO) N''-
CO)A NMB(! (%&-
OBS(!"ACION(S "A!C#A!$ (*++&-
CONS)!AIN) ,AGOS_,9 ,!IMA!: 9(:(CODIGO_SA!IO- NM(!O_M(S&-
CONS)!AIN) ,AGOS_29 2O!(IGN 9(:(CODIGO_SA!IO& !(2(!(NC(S SA!IOS
(NM_SOCIO& ON D('()( CASCAD(& ;
$ Vis%ai&ar os Bancos con s%s corres'on(ien!es %s%arios or(ena(os 'or nom"re (e Banco.
SE#ECT INITCAP)CONCAT(<NOMB!(==> >- <A,(''IDOS&& ?suario?- B<NOMB!( ?Ban/o?
*RO+ SA!IOS - BANCOS B
,-ERE <CODIGO_BANCO @ B<(N)_SC
ORDER B. B<NOMB!(- <NOMB!(;
/ Seecciona as ac!i0i(a(es c%1a c%o!a sea in2erior a a me(ia (e as c%o!as (e os %s%arios 3%e !ienen
c%o!a 2amiiar.
SE#ECT D(SC!I,CION- CO)A *RO+ AC)I"IDAD(S
,-ERE CO)A A (SE#ECT TRUNC(AVG(CO)A&- $&
*RO+ ,AGOS
,-ERE CODIGO_SA!IO IN
(SE#ECT NM_SOCIO *RO+ SA!IOS ,-ERE CO)A_2AMI'IA! IS NOT N''&&;
4 Vis%ai&ar nom"res 1 a'ei(os (e a3%eos %s%arios c%1o 'rimer 1 se5%n(o a'ei(o em'iece 'or a.
SE#ECT NOMB!(- SUBSTR(A,(''IDOS-6-(INSTR (A,(''IDOS-> >&B6&& ?,rimer apellido?-
SUBSTR(A,(''IDOS-(INSTR (A,(''IDOS-> >&C6&& ?Segundo apellido?
*RO+ SA!IOS
,-ERE UPPER(SUBSTR(A,(''IDOS-6-(INSTR (A,(''IDOS-> >&B6&&& #I6E >AD>
AND UPPER(SUBSTR(A,(''IDOS-(INSTR (A,(''IDOS-> >&C6&&& #I6E >AD>
ORDER B. NOMB!(;
sa/o el primer apellido:
S('(C) A,(''IDOS- SBS)!(A,(''IDOS-6-(INS)! (A,(''IDOS-> >&B6&&
2!OM SA!IOS ;
sa/o el segundo apellido:
S('(C) A,(''IDOS- SBS)!(A,(''IDOS-(INS)! (A,(''IDOS-> >&C6&&
2!OM SA!IOS ;
7 Vis%ai&ar os nom"res (e %s%arios8 a ac!i0i(a( 3%e reai&an 1 e nom"re (e "anco a !ra09s (e 3%e
'a5an a c%o!a.
SE#ECT INITCAP)CONCAT(<NOMB!(==> >- <A,(''IDOS&& ?suario?- A<D(SC!I,CION-
B<NOMB!(
*RO+ SA!IOS - AC)I"IDAD(S A- BANCOS B- AC)I"IDAD(S_SA!IOS A
,-ERE <NM_SOCIO@A<CODIGO_SA!IO
AND A<CODIGO_AC)I"IDAD@A<CODIGO_AC)I"IDAD
AND B<(N)_SC@<CODIGO_BANCO;
: Vis%ai&ar nom"re (e %s%ario8 n%mero 1 a'ei(o (e os %s%arios (e a si5%ien!e 2orma:
;(l usuario /on numero EEEE se llama 7uan 'uis Arias AlFareG<
SE#ECT CONCAT(>(l usuario /on numero >- NM_SOCIO& == CONCAT(> se llama >-
CONCAT(INITCAP(NOMB!(& == > >- INITCAP(A,(''IDOS&&& ?Numero usuario H Nombre?
*RO+ SA!IOS
ORDER B. NM_SOCIO;
> Vis%ai&ar e nom"re (e !o(os os "ancos j%n!o con a ocai(a( (on(e se enc%en!ra :
;Banesto esta en Algorta<
SE#ECT CONCAT(NOMB!(- > esta en >& == INITCAP('OCA'IDAD& ?Ban/o H lo/alidad?
*RO+ BANCOS
ORDER B. NOMB!(;
? C%en!a e n (e %s%arios 3%e 'a5an a !ra09s (e Banco San!an(er
SE#ECT COUNT (I& ?suarios pagan Santander? *RO+ SA!IOS
,-ERE CODIGO_BANCO@(SE#ECT (N)_SC *RO+ BANCOS ,-ERE UPPER(NOMB!(&
#I6E >SAN)AND(!>&
GROUP B. CODIGO_BANCO;
@ O"!ener os nom"res 1 2ecAas (e a!a (e !o(os os %s%arios (e a si5%ien!e 2orma:
;7uan 'uis se dio de alta el dJa 6 de (nero de 60%+<
SE#ECT CONCAT(INITCAP )NOMB!(&- > se dio de alta el dia >&== TO_C-AR (*EC-A_A#TA- >dd ?
de ? MontK ? de ? HHHH>& ?Nombre H 2e/Ka de alta? *RO+ SA!IOS;
'a pregunta original: O"!ener nom"res 1 2ecAa nacimien!o (e !o(os os %s%arios (e a si5%ien!e 2orma:
L7uan 'uis na/iM el dJa 6 de (nero de 60%+N No se puede Ka/er- falta el dato: fe/Ka na/imiento<
Da!os a me!er en as !a"as (para las /onsultas&:
Insert into ban/os (ent_su/- nombre- dire//ion- lo/alidad& Falues (
1+%+++68->BAN(S)O>->MAN(' ''AN(OA- 11>->MI(!(S>&;

Insert into ban/os (ent_su/- nombre- dire//ion- lo/alidad& Falues (
$+48++%+->CA7A D( AS)!IAS>->MAN(' ''AN(OA- 6%>->MI(!(S>&;

Insert into ban/os (ent_su/- nombre- dire//ion- lo/alidad& Falues (
41+++$*+->#(!!(!O>->MAN(' ''AN(OA- $$>->MI(!(S>&;

Insert into ban/os (ent_su/- nombre- dire//ion- lo/alidad& Falues (
8*++$$$$->SAN)AND(!>->'A CAMA!A- 61>->A"I'(S>&;

Insert into ban/os (ent_su/- nombre- dire//ion- lo/alidad& Falues (
$$$$1111->BB">->'A !IB(!A- 6%>->'ANCO>&;
Insert into ban/os (ent_su/- nombre- dire//ion- lo/alidad& Falues (
11114444->A)'AN)ICO>->GI7ON- *P>->'ANCO>&;

Insert into usuarios (num_so/io- dni- nombre- apellidos- domi/ilio-
lo/alidad- /p- fe/Ka_alta- /uota_so/io -/uota_familiar- paga_ban/o- /odigo_ban/o-
/uenta- digito_/ontrol&
Falues (>A6666>->+6666666>->7AN 'IS>->A!IAS A'"A!(O>-
>CQ 'A "(GA- 68>->MI(!(S>->11P++>-to_date(>6+Q+6Q600P>->ddQmmQHHHH>&-
**++-null->S>-1+%+++68-6666-6+&;

Insert into usuarios (num_so/io- dni- nombre- apellidos- domi/ilio-
lo/alidad- /p- fe/Ka_alta- /uota_so/io- /uota_familiar- paga_ban/o- /odigo_ban/o-
/uenta- digito_/ontrol&
Falues ( >A$$$$>->+$$$$$$$>->IN(S>->,(!(O DIAO>-
>CQD!< 2'(MING- 64>->MI(!(S>->11P++>-to_date(>6+Q+6Q600P>->ddQmmQHHHH>&-
P8++-$+++->S>-$+48++%+-$$$$-4%&;

Insert into usuarios (num_so/io- dni- nombre- apellidos- domi/ilio-
lo/alidad- /p- fe/Ka_alta- /uota_so/io- /uota_familiar- paga_ban/o&
Falues ( >A1111>->+1111111>->7OS(>->!IO ,(RA>-
>CQ A"I'(S- 68>->'ANCO>- >114++>-to_date(>$6Q+*Q600P>->ddQmmQHHHH>&-
P+++-null->N>&;

Insert into usuarios (num_so/io- dni- nombre- apellidos- domi/ilio-
lo/alidad- /p- fe/Ka_alta- /uota_so/io- /uota_familiar- paga_ban/o- /odigo_ban/o-
/uenta- digito_/ontrol&
Falues ( >I6666>->++666666>->MA!IA>->(GIA SAN)AMA!INA>-
>CQG(!NI9A- 1>->MI(!(S>->11P++>-
to_date(>6+Q66Q6008>->ddQmmQHHHH>&-%+++-null->S>-41+++$*+-6$14*P-$6&;

Insert into usuarios (num_so/io- dni- nombre- apellidos- domi/ilio-
lo/alidad- /p- fe/Ka_alta- /uota_so/io- /uota_familiar- paga_ban/o- /odigo_ban/o-
/uenta- digito_/ontrol&
Falues ( >I$$$$>->%%80P*4$>->MA!)A>->A!IAS SAN)O'A:A>-
>CQ AS)!IAS- $1 4S>->MI(!(S>->11P++>-to_date(>6$Q6$Q600%>->ddQmmQHHHH>&-
4*++-$*++->S>-$+48++%+-$$4$-46&;
Insert into usuarios (num_so/io- dni- nombre- apellidos- domi/ilio-
lo/alidad- /p- fe/Ka_alta- /uota_so/io- /uota_familiar- paga_ban/o- /odigo_ban/o-
/uenta- digito_/ontrol&
Falues ( >76666>->66666666>->ANA>->G)I(!!(O A'ONSO>-
>CQ AS)!IAS- *6 4S>->'ANCO>->1144+>-to_date(>+$Q+1Q6008>->ddQmmQHHHH>&-
*+++-1*++->S>-8*++$$$$-$14$-P6&;
Insert into usuarios (num_so/io- dni- nombre- apellidos- domi/ilio-
lo/alidad- /p- fe/Ka_alta- /uota_so/io- /uota_familiar- paga_ban/o- /odigo_ban/o-
/uenta- digito_/ontrol&
Falues ( >7$$$$>->$$$$$$$$>->'A!A>->2(!NAND(O A'ONSO>-
>CQ )("(!GA- 6% $S>->'ANCO>->1144+>-to_date(>66Q6$Q600%>->ddQmmQHHHH>&-
*+++-null->S>-8*++$$$$-$14$**-14&;
Insert into usuarios (num_so/io- dni- nombre- apellidos- domi/ilio-
lo/alidad- /p- fe/Ka_alta- /uota_so/io- /uota_familiar- paga_ban/o- /odigo_ban/o-
/uenta- digito_/ontrol&
Falues ( >71111>->11111111>->MA!IA>->A'ONSO G)I(!!(O>-
>CQ O"I(DO- 8 6S>->'ANCO>->1144+>-to_date(>6+Q66Q6008>->ddQmmQHHHH>&-
P+++-$*++->S>-$$$$1111-4$**PP-41&;
Insert into usuarios (num_so/io- dni- nombre- apellidos- domi/ilio-
lo/alidad- /p- fe/Ka_alta- /uota_so/io- /uota_familiar- paga_ban/o- /odigo_ban/o-
/uenta- digito_/ontrol&
Falues ( >74444>->44444444>->MAN('>->A'ONSO O"I(S>-
>CQ O"I(DO- 68 4S>->'ANCO>->1144+>-to_date(>+*Q+PQ600P>->ddQmmQHHHH>&-
P+++-null->S>-$$$$1111-4$**PP-41&;
Insert into usuarios (num_so/io- dni- nombre- apellidos- domi/ilio-
lo/alidad- /p- fe/Ka_alta- /uota_so/io- /uota_familiar- paga_ban/o- /odigo_ban/o-
/uenta- digito_/ontrol&
Falues ( >7****>->********>->!AMON>->A!BO'(:A GA!CIA>-
>CQ 'ANG!(O- 0 6S>->A"I'(S>->114++>-to_date(>+1Q+4Q600*>->ddQmmQHHHH>&-
4+++-$*++->S>-8*++$$$$-4141-6$&;
Insert into usuarios (num_so/io- dni- nombre- apellidos- domi/ilio-
lo/alidad- /p- fe/Ka_alta- /uota_so/io- /uota_familiar- paga_ban/o- /odigo_ban/o-
/uenta- digito_/ontrol&
Falues ( >7PPPP>->PPPPPPPP>->DO'O!(S>->MO!(NO !OD!IG(O>-
>CQ O"I(DO- $1 PS>->A"I'(S>->114++>-to_date(>+1Q+1Q6008>->ddQmmQHHHH>&-null-null->S>-$$$$1111-PP%*-$6&;
Insert into usuarios (num_so/io- dni- nombre- apellidos- domi/ilio-
lo/alidad- /p- fe/Ka_alta- /uota_so/io- /uota_familiar- paga_ban/o- /odigo_ban/o-
/uenta- digito_/ontrol&
Falues ( >7%%%%>->%%%%%%%%>->,AB'O>->!OD!IG(O A!IAS>-
>CQ 'A 2'O!IDA- 1 PS>->A"I'(S>->114++>-to_date(>+PQ+0Q600%>->ddQmmQHHHH>&-
4+++-$+++->S>-11114444-P%%*-6$&;
Insert into usuarios (num_so/io- dni- nombre- apellidos- domi/ilio-
lo/alidad- /p- fe/Ka_alta- /uota_so/io- /uota_familiar- paga_ban/o- /odigo_ban/o-
/uenta- digito_/ontrol&
Falues ( >78888>->88888888>->MA!)A>->A!!I(N GONOA'(O>-
>,'AOA SAN 7AN- 0>->MI(!(S>->11P++>-to_date(>+PQ+0Q600%>->ddQmmQHHHH>&-
%+++-null->S>-11114444-00%*-66&;
Insert into usuarios (num_so/io- dni- nombre- apellidos- domi/ilio-
lo/alidad- /p- fe/Ka_alta- /uota_so/io- /uota_familiar- paga_ban/o- /odigo_ban/o-
/uenta- digito_/ontrol&
Falues ( >70000>->00000000>->'IS>->B'N(S BA'BIN>-
>CQ 'A "(GA- 40 $S>->MI(!(S>->11P++>-to_date(>64Q66Q600P>->ddQmmQHHHH>&-
%+++-$+++->S>-11114444-100%*-$$&;
Insert into usuarios (num_so/io- dni- nombre- apellidos- domi/ilio-
lo/alidad- /p- fe/Ka_alta- /uota_so/io- /uota_familiar- paga_ban/o- /odigo_ban/o-
/uenta- digito_/ontrol&
Falues ( >76+6+>->6+6+6+6+>->7OS(>->A'"A!(O CAS)!O>-
>CQ ORON- $1 $S>->MI(!(S>->11P++>-to_date(>+6Q+4Q600*>->ddQmmQHHHH>&-
P+++-null->S>-11114444-011%*-4$&;
Insert into usuarios (num_so/io- dni- nombre- apellidos- domi/ilio-
lo/alidad- /p- fe/Ka_alta- /uota_so/io- /uota_familiar- paga_ban/o&
Falues ( >7++66>->66+66+66>->,('A:O>->(S'A CASA!I(GO>-
>CQ 'A ,IS)A- 64 6S>->MI(!(S>->11P++>-to_date(>+6Q+*Q600%>->ddQmmQHHHH>&-
8+++-null->N>&;
Insert into usuarios (num_so/io- dni- nombre- apellidos- domi/ilio-
lo/alidad- /p- fe/Ka_alta- /uota_so/io- paga_ban/o- /odigo_ban/o-
/uenta- digito_/ontrol&
Falues ( >7++6$>->6$6$6$6$>->"IC)O!>->A'BA ,!I()O>-
>CQ 'A 'I'A- 40 $S>->A"I'(S>->114++>-to_date(>+6Q+*Q6008>->ddQmmQHHHH>&-
8+++-68++->S>-8*++$$$$-*4P%0-1$&;
Insert into usuarios (num_so/io- dni- nombre- apellidos- domi/ilio-
lo/alidad- /p- fe/Ka_alta- /uota_so/io- paga_ban/o- /odigo_ban/o-
/uenta- digito_/ontrol&
Falues ( >7++61>->61616161>->'O>->C()O A!!O:O>-
>CQ MA:O!- 06 *S>->A"I'(S>->114++>-to_date(>+6Q+PQ600*>->ddQmmQHHHH>&-
%+++-$%++->S>-$$$$1111-PP%8*-1$&;
Insert into usuarios (num_so/io- dni- nombre- apellidos- domi/ilio-
lo/alidad- /p- fe/Ka_alta- /uota_so/io- paga_ban/o- /odigo_ban/o-
/uenta- digito_/ontrol&
Falues ( >7++64>->64646464>->MA!IO>->2(!NAND(O "(GA>-
>CQ ,(O- 60 $S>->A"I'(S>->114++>-to_date(>+6Q+4Q6008>->ddQmmQHHHH>&-
1+++-null->S>-11114444-11*4P%0-*1&;
Insert into a/tiFidades Falues (>G+++++6>- >GIMNASIA D( MAN)(NIMI(N)O>- 6+++&;

Insert into a/tiFidades Falues (>G+++++$>->GIMNASIA !I)MICA>-8++&;

Insert into a/tiFidades Falues (>AM++++6>->7DO>-6$++&;

Insert into a/tiFidades Falues (>AM++++$>->9A!A)(>-66++&;

Insert into a/tiFidades Falues (>N+++++6>->NA)ACION 6>-0++&;

Insert into a/tiFidades Falues (>N+++++$>->NA)ACION $>-6+++&;

Insert into a/tiFidades Falues (>G+++++1>->MSC'ACION>-61++&;
Insert into a/tiFidades_usuarios (/odigo_a/tiFidad- /odigo_usuario- fe/Ka_alta& Falues (
>G+++++6>->A6666>-to_date(>1+Q+1Q6000>->ddQmmQHHHH>&&;
Insert into a/tiFidades_usuarios (/odigo_a/tiFidad- /odigo_usuario- fe/Ka_alta& Falues (
>AM++++$>->A6666>-to_date(>1+Q+1Q6000>->ddQmmQHHHH>&&;
Insert into a/tiFidades_usuarios (/odigo_a/tiFidad- /odigo_usuario- fe/Ka_alta& Falues (
>AM++++6>->A$$$$>-to_date(>1+Q+1Q6000>->ddQmmQHHHH>&&;

Insert into a/tiFidades_usuarios (/odigo_a/tiFidad- /odigo_usuario- fe/Ka_alta& Falues (
>N+++++6>->A$$$$>-to_date(>1+Q+1Q6000>->ddQmmQHHHH>&&;
Insert into a/tiFidades_usuarios (/odigo_a/tiFidad- /odigo_usuario- fe/Ka_alta& Falues (
>N+++++$>->I$$$$>-to_date(>+6Q+1Q6000>->ddQmmQHHHH>&&;
Insert into a/tiFidades_usuarios (/odigo_a/tiFidad- /odigo_usuario- fe/Ka_alta& Falues (
>AM++++$>->I$$$$>-to_date(>66Q+$Q6000>->ddQmmQHHHH>&&;
Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>A6666>-6-*+++&;

Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>A6666>-$-*+++&;

Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>A6666>-1-*+++&;

Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>A6666>-4-**++&;

Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>A6666>-*-**++&;

Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>A6666>-P-*+++&;

Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>A$$$$>-6-%8++&;

Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>A$$$$>-$-%8++&;

Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>A$$$$>-*-%8++&;

Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>A$$$$>-P-8+++&;

Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>A$$$$>-1-%8++&;

Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>A$$$$>-4-0+++&;

Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>I6666>-*-4*++&;

Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>I6666>-%-*+++&;

Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>I6666>-6-14*P&;

Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>A$$$$>-%-8+++&;

Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>A1111>-$-4*++&;

Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>I$$$$>-6-*+++&;

Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>I$$$$>-$-*+++&;

Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>I$$$$>-1-**++&;

Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>I$$$$>-4-**++&;

Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>I$$$$>-P-P+++&;
Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>76666>-6-6+++&;
Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>76666>-$-6++++&;
Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>76666>-4-6++++&;
Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>76666>-*-6++++&;
Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>76666>-6$-6++++&;
Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>7$$$$>-6$-8+++&;
Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>7$$$$>-6-6+++&;
Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>7$$$$>-1-6++++&;
Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>7$$$$>-66-6++++&;
Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>71111>-6-6+++&;
Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>71111>-$-$+++&;
Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>71111>-1-1+++&;
Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>71111>-4-4+++&;
Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>71111>-*-*++&;
Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>71111>-66-8++&;
Insert into pagos (/odigo_usuario- numero_mes-/uota& Falues (>71111>-6$-6*++&;
Administracin de sistemas gestores de Bases de datos Ejercicios
Actividades complementarias (Capitulo 8)
1. Construye un bloque !"#$! que escriba el te%to &'ola&.
BEGIN
DBMS_OUTPUT.PUT_LINE ('Hola mundo');
END;
(. )$ue *ace el siguiente bloque !"#$!+
DECLARE
_num NUMBER;
BEGIN
SELECT !oun"(#) INTO _num
$ROM %&odu!"o';
DBMS_OUTPUT.PUT_LINE (_num);
END;
(
P&)m*&o d*!la&a la a&)a+l* _num
S*,undo *-*!u"a la )n'"&u!!).n SELECT /!u*n"a la' 0)la' d* la "a+la 1 m*"* *l &*'ul"ado *n _num
T*&!*&o mu*'"&a *n %an"alla *l !on"*n)do d* la a&)a+l* _num
,. -ntroduce el bloque anterior desde #$!.lus y gu/rdalo en un 0ic*ero.
DECLARE
_num NUMBER;
BEGIN
SELECT !oun"(#) INTO _num
$ROM %&odu!"o';
DBMS_OUTPUT.PUT_LINE (_num);
END;
.
1. Ejecuta la orden #E!EC2 especi0icada en el bloque anterior desde #$!.!3# sin
la clausula -425.
SELECT !oun"(#) _num
$ROM %&odu!"o';
6. Carga y ejecuta el bloque de nuevo7 y comprueba que el resultado aparece en
pantalla.
2.
8. Escribe desde #$!.lus el ejemplo numero 1 del ep9gra0e :3so de subprogramas
almacenados; y prueba a ejecutarlo con distintos valores. (*-*m%lo %a, 334)
dado un num*&o d* %&odu!"o 5u* no' d* *l %&*!)o.
C<EA2E 5< <E!ACE
<5CE=3<E %&*!)o!od),o (num%&odu!"o 43>BE<)
A#
_%&*!)o 43>BE<;
BE?-4
#E!EC2 %&*!)o_a!"ual -425 _%&*!)o
@<5> %&odu!"o'
A'E<E %&odu!"o_no 6 num%&odu!"o;
=B>#B53232.32B!-4E (_%&*!)o);
ECCE2-54
A'E4 45B=A2AB@534= 2'E4
DBMS_OUTPUT.PUT_LINE ('No *n!on"&ado %&*!)o');
E4= %&*!)o!od),o;
"
!on'ul"a7
BE?-4
preciocodigo(1D)E
E4=;
&*'ul"ado.
1050
Statement processed.
F. -denti0ica en el ejemplo numero ( del ep9gra0e :3so de subprogramas almacenados;
los siguientes elementosG (*-*&!)!)o 4.3 d* la %a,)na 389)
H !a cabecera del procedimiento.
C<EA2E 5< <E!ACE
<5CE=3<E mod)0)!a&_%&*!)o_%&odu!"o (num%&odu!"o 43>BE</ nu*o%&*!)o 43>BE<)
H El nombre del procedimiento.
mod)0)!a&_%&*!)o_%&odu!"o
H !os par/metros del procedimiento.
num%&odu!"o 43>BE</ nu*o%&*!)o 43>BE<
H !as variables locales.
_%&*!)oan" 43>BE<(2)
H El comienIo y el 0inal del bloque !"#$!.
A#
:...
E4=;
H El comienIo y el 0inal de las secciones declarativa7 ejecutable y de gestin de e%cepciones.
S*!!).n d*!la&a")a7
_%&*!)oan" 43>BE<(2);
S*!!).n *-*!u"a+l*
#E!EC2 %&*!)o_a!"ual -425 _%&*!)oan"
@<5> %&odu!"o'
A'E<E %&odu!"o_no 6 num%&odu!"o;
-@ (_%&*!)oan" # ;.3;) < (nu*o%&*!)o = _%&*!)oan") 2'E4
3=A2E %&odu!"o' #E2 %&*!)o_a!"ual 6 nu*o%&*!)o
A'E<E %&odu!"o_no 6 num%&odu!"o;
E!#E
=B>#B53232.32B!-4E ('E&&o&/ mod)0)!a!)on 'u%*&a 3;>');
E4= -@;
S*!!).n *?!*%!)on*'
A'E4 45B=A2AB@534= 2'E4
=B>#B53232.32B!-4E ('No *n!on"&ado %&odu!"o ' @@ num%&odu!"o);
H )$ue *ace la clausula -425+
M*"* *l !on"*n)do d* precioBactual d*n"&o d* la a&)a+l* vBprecioant
H )$ue *ace A'E4 45B=A2AB@534=+
Cuando no '* Aan *n!on"&ado da"o' *n la !on'ul"a &*al)Ba una a!!).n (no&malm*n"* %&*'*n"a& un
m*n'a-* d* a)'o 5u* '* Aa %&*d*0)n)do)
H )or que no tiene la clausula =EC!A<E+ )$ue tiene en su lugar+
Po&5u* *' un %&o!*d)m)*n"o no un +lo5u* an.n)mo/ *n 'u lu,a& ")*n* AS dond* '* d*!la&an la'
a&)a+l*'.
Ejercicio 6 2ema 8 Pa,.33C (Ba-o T*&m)nal)7
El %&o,&ama 'ol)!)"a la )n"&odu!!).n d* un num*&o d* !l)*n"* 1 )'ual)Ba *l nom+&* d*l !l)*n"* !on *l
num*&o )n"&odu!)do.
=EC!A<E
_nom CLIENTES.NOMBREJ2KE; DD(E-*m%lo d* u'o d* >TEPE)
BE?-4
#E!EC2 nom+&* -425 _nom
@<5> !l)*n"*'
A'E<E CLIENTE_NO6Ln_!l);
=B>#B53232.32B!-4E (_nom);
E4=;
.
Ejercicio 8 2ema 8 Pa,.33F7
P&o!*d)m)*n"o '*n!)llo' %a&a !on'ul"a' d* da"o' d* un !l)*n"*.
C&*a!).n %&o!*d)m)*n"o7
C<EA2E 5< <E!ACE
<5CE=3<E *&_d*%a&" (numd*%a&" 43>BE<)
A#
_dnom+&* MA<C'A<((9G);
_lo!al)dad MA<C'A<((9G);
BE?-4
#E!EC2 dnom+&*/ Lo!al)dad -425 _dnom+&*/ _lo!al)dad
@<5> DEPARTAMENTOS
A'E<E d*%_no 6 numd*%a&";
=B>#B53232.32B!-4E ('Num d*%a&"7 ' @@ numd*%a&" @@ ' # Nom+&* d*%7 ' @@
_dnom+&* @@ ' # Lo!al)dad7 ' @@ _lo!al)dad);
ECCE2-54
A'E4 45B=A2AB@534= 2'E4
=B>#B53232.32B!-4E ('No *n!on"&ado d*%a&"am*n"o ');
E4= *&_d*%a&";
(
Llamada al %&o!*d)m)*n"o7
BEGIN
*&_d*%a&"(8;);
END;
R*'ul"ado %&o!*d)m)*n"o7
Num depart: 30 * Nombre dep: VENTAS * Localidad: MA!"
Statement processed.
HIa "*&m)nal7
Ejercicio F.1 2ema 8 Pa,.3897
H)'ual)Ba!).n d*l %&*!)o d* un %&odu!"o !u1o num*&o d* %&odu!"o '* %a'a !omo %a&Jm*"&o.
C<EA2E 5< <E!ACE
<5CE=3<E *&_%&*!)o (_num_%&odu!"o 43>BE<)
A#
_%&*!)o 43>BE<;
BE?-4
#E!EC2 %&*!)o_a!"ual -425 _%&*!)o
@<5> %&odu!"o'
A'E<E %&odu!"o_no 6 _num_%&odu!"o;
=B>#B53232.32B!-4E ('P&*!)o 6 ' NN _%&*!)o);
E4= ;
"
Llamada %&o!*d)m)*n"o/HIa "*&m)nal7
Llamada %&o!*d)m)*n"o/ *n"o&no ,&J0)!o7
BE?-4
*&_%&*!)o(2;);
E4=
;
R*'ul"ado %&o!*d)m)*n"o7
P&*!)o 6 9;2;
S"a"*m*n" %&o!*''*d.
Ejercicio F.( 2ema 8 Pa,.3897
P&o!*d)m)*n"o 5u* mod)0)!a *l %&*!)o d* un %&odu!"o/ %a'andol* *l num*&o d* %&odu!"o 1 *l nu*o
%&*!)o/ *l %&o!*d)m)*n"o !om%&o+a&a 5u* la a&)a!).n d* %&*!)o no 'u%*&a *l 3;>.
C<EA2E 5< <E!ACE
<5CE=3<E mod)0)!a&_%&*!)o_%&odu!"o (num%&odu!"o 43>BE</ nu*o%&*!)o 43>BE<)
A#
_%&*!)oan" 43>BE<(2);
BE?-4
#E!EC2 %&*!)o_a!"ual -425 _%&*!)oan"
@<5> %&odu!"o'
A'E<E %&odu!"o_no 6 num%&odu!"o;
-@ ( _%&*!)oan" # ;.3;) < ( nu*o%&*!)o = _%&*!)oan") 2'E4
3=A2E %&odu!"o' #E2 %&*!)o_a!"ual 6 nu*o%&*!)o
A'E<E %&odu!"o_no 6 num%&odu!"o;
E!#E
=B>#B53232.32B!-4E ('E&&o&/ mod)0)!a!)on 'u%*&a 3;>');
E4= -@;
ECCE2-54
A'E4 45B=A2AB@534= 2'E4
=B>#B53232.32B!-4E ('No *n!on"&ado %&odu!"o ' @@ num%&odu!"o);
E4= mod)0)!a&_%&*!)o_%&odu!"o;
"
Llamada %&o!*d)m)*n"o/HIa "*&m)nal7
#E2 #E<ME<53232 54
ECEC32E mod)0)!a&_%&*!)o_%&odu!"o(K;/8;;);
4otaG E'"* %&o!*d)m)*n"o Ia *n"o&no ,&J0)!o da *&&o& Aa1 5u* Aa!*&lo "odo Ia "*&m)nal.
Ejercicio F., 2ema 8 Pa,.3837
$un!).n 5u* d*u*l* *l alo& !on IHA d* una !an")dad 5u* '* %a'a&a !omo %&)m*& %a&Jm*"&o/ la
0un!).n "am+)Ln %od&J &*!o,*& un '*,undo %a&Jm*"&o o%!)onal/ 5u* '*&a *l ")%o d* IHA/ ')*ndo *l
alo& %o& d*0*!"o 9K.
C<EA2E 5< <E!ACE
@34C2-54 !on_)a (!an")dad 43>BE</ ")%o 43>BE< =E@A3!2 9K)
<E23<4 43>BE<
A#
_&*'ul"ado 43>BER (9;/3) =E@A3!2 ;;
BE?-4
_&*'ul"ado 76 !an")dad # (9 M (")%o(9;;));
<E23<4 (_&*'ul"ado);
E4= !on_)a;
"
Llamada al %&o!*d)m)*n"o *n"o&no ,&J0)!o7
BE?-4
DBMS_OUTPUT.PUT_LINE(!on_)a(3;;));
E4=
;
&*'ul"ado7
383
IEFPS Elorrieta-ErrekaMari GBLHI curso 2012-13 ikasturtea
Bases de Datos
Tablas utilizadas en los ejercicios
Pg 1 or
DEPARTAMENTOS
DEP_NO
!u"#er$2%
DNOMBRE
&arc'ar2$1(%
LOCALIDAD
&arc'ar2$10%
10 )*!+,BILID,D B,-)EL*!,
20 I!&ES+IG,)I*! &,LE!)I,
30 &E!+,S M,D-ID
(0 P-*D.))I*! SE&ILL,
EMPLEADOS
EMP_NO
!u"#er$(%
APELLIDO
&arc'ar2$/%
OICIO
&arc'ar2$10%
DIRECTOR
!u"#er$(%
EC!A_ALTA
Date
SALARIO
!u"#er $0%
COMISION
!u"#er$0%
DEP_NO
!u"#er$2%
1(22 ,L*!S* &E!DED*- 102/ 20-FEB-1220 1300 320 30
1321 L*PE4 EMPLE,D* 11/2 22-FEB-1221 1023 10
103( M,-+I! &E!DED*- 102/ 2/-SEP-1221 1000 1020 30
102/ G,--ID* DI-E)+*- 1/32 01-M,5-1221 3003 30
11/2 M,-+I!E4 DI-E)+*- 1/32 02-6.!-1221 2//3 10
1/10 GIL ,!,LIS+, 11/2 00-6.!-1223 1(30 20
1/32 -E5 P-ESIDE!+E 11-!*&-1221 (100 10
1/(( ),L&* &E!DED*- 102/ 0/-SEP-1221 1330 0 30
1200 6IME!E4 EMPLE,D* 11// 2(-M,--1223 3000 20
IEFPS Elorrieta-ErrekaMari GBLHI curso 2012-13 ikasturtea
Bases de Datos
Pg 2 or
PROD"CTOS
PROD"CTO_NO
!u"#er$(%
DESCRIPCION
&arc'ar2$30%
PRECIO_ACT"AL
!u"#er$/%
STOC#_DISPONIBLE
!u"#er$2%
10 MES, DESP,)H* M*D G,&I*+, 330 30
20 SILL, DI-E)+*- M*D B.F,L* 010 23
30 ,-M,-I* !*G,L D*S P.E-+,S (00 20
(0 MES, M*DEL* .!I*! 3(0 13
30 ,-)HI&,D*- )E-E4* 1030 20
00 ),6, SEG.-ID,D M*D B222 2/0 13
10 DES+-.)+*-, DE P,PEL ,3 (30 23
/0 M*D.L* *-DE!,D*- M*D E-G*S 330 23
PEDIDOS
PEDIDO_NO
!u"#er$(%
PROD"CTO_NO
!u"#er$(%
CLIENTE_NO
!u"#er$(%
"NIDADES
!u"#er$(%
EC!A_PEDIDO
Date
1000 20 103 3 22-SEP-2010
1001 30 100 2 22-SEP-2010
1002 10 101 ( 23-SEP-2010
1003 20 103 ( 20-SEP-2010
100( (0 100 / 2/-SEP-2010
1003 30 103 2 2/-SEP-2010
1000 10 103 3 02-*)+-2010
1001 30 101 2 02-*)+-2010
100/ 10 100 0 0(-*)+-2010
1002 20 103 2 0(-*)+-2010
1010 (0 102 3 03-*)+-2010
1011 30 100 2 01-*)+-2010
1012 10 103 3 10-*)+-2010
1013 30 100 2 10-*)+-2010
101( 20 101 ( 1/-*)+-2010
1013 10 103 ( 1/-*)+-2010
1010 30 100 1 22-*)+-2010
1011 20 103 0 02-!*&-2010
CLIENTES
CLIENTE_NO
!u"#er$(%
NOMBRE
&arc'ar2$23%
LOCALIDAD
&arc'ar2$1(%
$ENDEDOR_NO
&arc'ar2$1(%
DEBE
!u"#er$2%
!ABER
!u"#er$2%
LIMITE_CREDITO
!u"#er$2%
101 DIS+-IB.)I*!ES G*ME4 M,D-ID 1(22 0 0 3000
102 L*GI+-*!I), SL B,-)EL*!, 103( 0 0 3000
103 I!D.S+-I,S L,)+E,S S, L,S -*4,S 1/(( 0 0 10000
10( +,LLE-ES ES+ES* S, SE&ILL, 103( 0 0 3000
103 EDI)I*!ES S,!4 B,-)EL*!, 1(22 0 0 3000
100 SIG!*L*GI) S, M,D-ID 103( 0 0 3000
101 M,-+I! 5 ,S*)I,D*S SL ,-,&,), 1/(( 0 0 10000
10/ M,!.F,)+.-,S ,LI S, SE&ILL, 103( 0 0 3000
Administracin de sistemas gestores de Bases de datos Ejercicios
Actividades complementarias (Capitulo 9 pag.271)
1. Escribe un procedimiento ue reciba dos numero ! visualice una suma.
C"EA#E $" "E%&ACE
%"$CE'("E suma (num1 )(*BE", num2 )(*BE")
A+
suma )(*BE"(2);
BE,-)
suma:=num1+num2;
'B*+.$(#%(#.%(#.&-)E ('La suma de '||num1||' con '||num2||' es: '||suma);
E/CE%#-$)
01E) #$$.*A)2."$0+ #1E)
"A-+E.A%%&-CA#-$).E""$" (-20000, 'ERROR demasiados datos');
E)';
3
2. Codi4ica un procedimiento ue reciba una cadena ! la visualice al rev5s.
C"EA#E $" "E%&ACE
%"$CE'("E alrees (cadena 6A"C1A"2)
A+
r!cadena 6A"C1A"2(2");
BE,-)
7$" i -) "E6E"+E 1##&E),#1 (cadena)
&$$%
r!cadena := r!cadena || +(B+#" (cadena,i,1);
E)' &$$%;
'B*+.$(#%(#.%(#.&-)E (r!cadena);
E/CE%#-$)
01E) #$$.*A)2."$0+ #1E)
"A-+E.A%%&-CA#-$).E""$" (-20000, 'ERROR demasiados datos');
E)';
3
E$ecuci%n &or terminal:
e8ecute alrees ('esto es una 'istoria')
E$ecuci%n &or entorno (r)*ico:
BE,-) alrees ('esto es una 'istoria');
E)';
Resultado:
airotsi' anu se otse
+rocedimiento +L,-.L terminado correctamente#
E$ecuci%n &or entorno (r)*ico
BE,-)
suma(19:;)<
E)';
E$ecuci%n &or consola:
+E# +E"6E"$(#%(# $)
E/EC(#E suma(10,");
El resultado:
La suma de 10 con " es: 1"
=. "eescribe el cdigo de los ejercicios anteriores para convertirlos en 4unciones ue retornen
los valores ue mostraban los procedimientos.
>Ejercicio 1 en 4uncin
C"EA#E $" "E%&ACE
7()C#-$) suma (num1 )(*BE", num2 )(*BE")
"E#(") RE/L
A+
sumar )(*BE"(2);
BE,-)
sumar:=num1+num2;
"E#(") sumar;
E/CE%#-$)
01E) #$$.*A)2."$0+ #1E)
"A-+E.A%%&-CA#-$).E""$" (-20000, 'ERROR demasiados datos');
E)';3
)ota? antes de ejecutar nada por terminal @a! ue poner? +E# +E"6E"$(#%(# $)
&lamada a la 4uncin con otro programa (por terminal)
E/EC(#E 'B*+.$(#%(#.%(#.&-)E (suma (10,20))<
&lamada a la 4uncin con otro programa (entorno grA4ico)
BE,-)
'B*+.$(#%(#.%(#.&-)E (suma (10,20))<
E)'<3
>Ejercicio 2 en 4uncin
C"EA#E $" "E%&ACE
7()C#-$) alreess (cadena 6A"C1A"2)
"E#(") 6A"C1A"2
A+
r!cadena 6A"C1A"2(2");
BE,-)
7$" i -) "E6E"+E 1##&E),#1 (cadena)
&$$%
r!cadena := r!cadena || +(B+#" (cadena,i,1);
E)' &$$%;
"E#(") r!cadena;
E/CE%#-$)
01E) #$$.*A)2."$0+ #1E)
"A-+E.A%%&-CA#-$).E""$" (-20000, 'ERROR demasiados datos');
E)';3
&lamada a la 4uncin con otro programa (por terminal)
E/EC(#E 'B*+.$(#%(#.%(#.&-)E (alreess ('&ro(rama'))<
&lamada a la 4uncin con otro programa (entorno grA4ico)
BE,-)
'B*+.$(#%(#.%(#.&-)E (alreess ('&ro(rama'))<
E)'<3
B. Escribe una 4uncin ue reciba una 4ec@a ! devuelva el aCo: en numero: correspondiente a
esa 4ec@a.
C"EA#E $" "E%&ACE
7()C#-$) *ecnum (*ec'a 'A#E)
"E#(") )(*BE"
A+
num )(*BE";
BE,-)
num:=#$.)(*BE"(#$.C1A" (*ec'a, '0000'));
"E#(") num;
E/CE%#-$)
01E) #$$.*A)2."$0+ #1E)
"A-+E.A%%&-CA#-$).E""$" (-20000, 'ERROR demasiados datos');
E)';3
+ara &ro1ar en entorno (r)*ico:
BE,-)
'B*+.$(#%(#.%(#.&-)E (*ecnum ('2",02,2012'))<
E)'<3
;. Escribe un bloue %&3+D& ue @aga uso de la 4uncin anterior.
C"EA#E $" "E%&ACE
%"$CE'("E *ec'a (*ec'a 'A#E)
A+
num )(*BE";
BE,-)
num:=*ecnum (*ec'a);
'B*+.$(#%(#.%(#.&-)E ('La *ec'a: ' || *ec'a || ' &ertenece al a3o: ' || num);
E/CE%#-$)
01E) #$$.*A)2."$0+ #1E)
"A-+E.A%%&-CA#-$).E""$" (-20000, 'ERROR demasiados datos');
E)';
3
+ara &ro1ar en entorno (r)*ico:
BE,-)
*ec'a ('2",02,2012')<
E)'<3
E. 'esarrolla una 4uncin ue devuelva el numero de aCos completos ue @a! entre dos 4ec@as
ue se pasan como parAmetros.
C"EA#E $" "E%&ACE
7()C#-$) numanio (*ec'a1 'A#E, *ec'a2 'A#E)
"E#(") )(*BE"
A+
num )(*BE";
BE,-)
num:=AB+("$()'(*$)#1+.BE#0EE) (*ec'a1, *ec'a2),12));
"E#(") num;
E/CE%#-$)
01E) #$$.*A)2."$0+ #1E)
"A-+E.A%%&-CA#-$).E""$" (-20000, 'ERROR demasiados datos');
E)';3
+ara &ro1ar en entorno (r)*ico:
BE,-)
'B*+.$(#%(#.%(#.&-)E (numanio ('2",02,2012', '12,04,2010'))<
E)'<3
7. Escribe una 4uncin ue: @aciendo uso de la 4uncin anterior: devuelva los trienios ue @a!
entre dos 4ec@as (un trienio son tres aCos).
C"EA#E $" "E%&ACE
%"$CE'("E trienios (*ec'a1 'A#E, *ec'a2 'A#E)
A+
num )(*BE";
BE,-)
num:=5LOOR(numanio (*ec'a1,*ec'a2),4);
'B*+.$(#%(#.%(#.&-)E (num);
E/CE%#-$)
01E) #$$.*A)2."$0+ #1E)
"A-+E.A%%&-CA#-$).E""$" (-20000, 'ERROR demasiados datos');
E)';
3
+ara &ro1ar en entorno (r)*ico:
BE,-)
trienios ('2",02,2012', '12,04,2010')<
E)'<3
F. codi4ica un procedimiento ue reciba una lista de @asta cinco nGmeros ! visualice su suma.
C"EA#E $" "E%&ACE
%"$CE'("E suma" (num1 )(*BE", num2 )(*BE", num4 )(*BE", num6 )(*BE", num"
)(*BE" )
A+
suma )(*BE"(6);
BE,-)
suma:=num1+num2+num4+num6+num";
'B*+.$(#%(#.%(#.&-)E ('La suma de ' ||num1|| ' + ' ||num2|| ' + ' ||num4|| ' + ' ||num6|| ' + ' ||
num" ||' es: ' || suma);
E/CE%#-$)
01E) #$$.*A)2."$0+ #1E)
"A-+E.A%%&-CA#-$).E""$" (-20000, 'ERROR demasiados datos');
E)';
3
BE,-)
suma"(10,", 10, ",10);
E)';
19. Codi4ica un procedimiento ue permita borrar un empleado cu!o numero se pasara en la
llamada.
C"EA#E $" "E%&ACE
%"$CE'("E 1orraem& (num )(*BE")
A+
nom1re E7+LE/8O-#/+ELL98O:;<+E;
BE,-)
-ELE=; /+ELL98O 9>;O nom1re 5RO7 E7+LE/8O-
?@ERE E7+!>O=num;
8ELE;E 5RO7 E7+LE/8O-
?@ERE E7+!>O=num;
'B*+.$(#%(#.%(#.&-)E ('-e 'a 1orrado el em&leado ' || nom1re || ' con nA em&leado: ' || num);
E/CE%#-$)
01E) #$$.*A)2."$0+ #1E)
"A-+E.A%%&-CA#-$).E""$" (-20000, 'ERROR demasiados datos');
01E) )$.'A#A.7$()' #1E)
"A-+E.A%%&-CA#-$).E""$" (-20000, 'ERROR no 'a0 datos');
E)';
3
BE,-)
1orraem&(10"B);
E)';
11. Escribe un procedimiento ue modi4iue la localidad de un departamento. El
procedimiento recibirA como parAmetro el numero del departamento ! la nueva localidad.
C"EA#E $" "E%&ACE
%"$CE'("E cam1iar!loc (num!de&art )(*BE", nuea!loc 6A"C1A"2)
A+
!anterior!loc de&artamentos#localidadH#2%E;
BE,-)
+E&EC# localidad -)#$ !anterior!loc
7"$* de&artamentos
01E"E de&!no = num!de&art;
(%'A#E de&artamentos +E# localidad = nuea!loc
01E"E de&!no = num!de&art;
'B*+.$(#%(#.%(#.&-)E ('>A 8e&artamento: ' || num!de&art || ', localidad /nterior: ' ||
!anterior!loc || ', localidad nuea : ' || nuea!loc);
E/CE%#-$)
01E) #$$.*A)2."$0+ #1E)
"A-+E.A%%&-CA#-$).E""$" (-20000, 'ERROR demasiados datos');
01E) )$.'A#A.7$()' #1E)
"A-+E.A%%&-CA#-$).E""$" (-20000, 'ERROR no 'a0 datos');
01E) $#1E"+ #1E)
"A-+E.A%%&-CA#-$).E""$" (-20000, 'ERROR en la a&licacion');
E)' cam1iar!loc;
3
E$ecuci%n &or terminal:
set sererout&ut on
eCecute cam1iar!loc (10, '-ED9LL/');
Resultado:
>A 8e&artamento: 10, localidad /nterior: E/R=ELO>/, localidad nuea : -ED9LL/
+rocedimiento +L,-.L terminado correctamente#
12. 6isualiIa todos los procedimientos ! 4unciones del usuario almacenados en la base de datos
! su situacin (valid o invalid).
Ejercicios ejemplo del capitulo?
1. +upongamos ue pretendemos modi4icar el salario de un empleado especi4icado en 4uncin
del numero de empleados ue tiene a su cargo? (e$ercicio 1 de la &a(ina 2"0)
J +i no tiene ningGn empleado a su cargo l +(B-'A +E"A 'E ;9K.
J +i tiene 1 empleado la subida sera de F9K.
J +i tiene 2 empleados la subida sera de 199K.
J +i tiene mas de = empleados la subida sera de 119K.
J Ademas si el empleado es %"E+-'E)#E se incrementara el salario en =9K.
'EC&A"E
!em&leado!no )(*BE" (6,0); -- Em&leado al Fue su1ir salario
!c!em&leados )(*BE" (2); -- =antidad em&leados de&enden de el
!aumento )(*BE" (2) 'E7A(&# 0; -- 9m&orte Fue amos a aumentar
!o*icio 6A"C1A"2 (10);
BE,-)
!em&leado!no := Gt!em&no; -- aria1le de sustitucion, lee nA em&leado
+E&EC# o*icio -)#$ !o*icio 7"$* em&leados
01E"E em&!no = !em&leado!no;
-7 !o*icio = '+RE-98E>;E' #1E) -- /lternatia sim&le
!aumento := 40;
E)' -7;
+E&EC# C$()#(H) -)#$ !c!em&leados 7"$* em&leados
01E"E director = !em&leado!no;
-7 !c!em&leados = 0 #1E) -- /lternatia multi&le
!aumento := !aumento + "0;
E&+-7 !c!em&leados = 1 #1E)
!aumento := !aumento + I0;
E&+-7 !c!em&leados = 2 #1E)
!aumento := !aumento + 100;
E&+E
!aumento := !aumento + 110;
E)' -7;
(%'A#E em&leados +E# salario = salario + !aumento
01E"E em&!no = !em&leado!no;
'B*+.$(#%(#.%(#.&-)E(!aumento);
E)' ;
3
=on =/-E de 1JsFueda:
CA+E
01E) !c!em&leados = 0 #1E)
!aumento := !aumento + "0;
01E) !c!em&leados = 1 #1E)
!aumento := !aumento + I0;
01E) !c!em&leados = 2 #1E)
!aumento := !aumento + 100;
E&+E
!aumento := !aumento + 110;
E)' CA+E;
=on =/-E de com&ro1aci%n:
CA+E !c!em&leados
01E) 0 #1E)
!aumento := !aumento + "0;
01E) 1 #1E)
!aumento := !aumento + I0;
01E) 2 #1E)
!aumento := !aumento + 100;
E&+E
!aumento := !aumento + 110;
E)' CA+E;
Este e$ercicio 'a0 Fue 'acerlo &or consola 0 actiar &rimero Fue im&rima las aria1les con:
set serveroutput on
Kna eL introducido todas las lineas al dar enter &ide un numero de usuario 0 da la soluci%n#
9ntroduLca un alor &ara t!em&no: 26MM
anti(uo 2: !em&leado!no := Gt!em&no; -- aria1le de sustitucion, lee nA em&leado
nueo 2: !em&leado!no := 26MM; -- aria1le de sustitucion, leenA em&leado
"0
+rocedimiento +L,-.L terminado correctamente#
2. +upongamos ue deseamos analiIar una cadena ue contiene los dos apellidos para guardar
el primer apellido en una variable a la ue llamaremos v.1apel . Entendemos ue el primer
apellido termina cuando encontremos cualuier carActer distinto de los al4ab5ticos (en
ma!Gsculas)? (e$ercicio 2 de la &a(ina 2"2)
'EC&A"E
!a&ellidos 6A"C1A"2(2");
!1a&el 6A"C1A"2(2");
!caracter C1A";
!&osicion -)#E,E" := 1;
BE,-)
!a&ellidos := 'Gs!a&ellidos';
!caracter := +(B+#"(!a&ellidos, !&osicion,1);
01-&E !caracter BE#0EE) '/' A)' 'N' &$$%
!1a&el := !1a&el || !caracter;
!&osicion := !&osicion + 1;
!caracter := +(B+#" (!a&ellidos,!&osicion,1);
E)' &$$%;
'B*+.$(#%(#.%(#.&-)E('1er /&ellido: '||!1a&el||'H');
E)';
3
Este e$ercicio 'a0 Fue 'acerlo &or consola 0 actiar &rimero Fue im&rima las aria1les con:
set serveroutput on
En la e$ecuci%n &ide el nom1re 0 da el si(uiente resultado
9ntroduLca un alor &ara s!a&ellidos: O9L 7ORE>O
anti(uo 2: !a&ellidos := 'Gs!a&ellidos';
nueo 2: !a&ellidos := 'O9L 7ORE>O';
1er /&ellido: O9LH
+rocedimiento +L,-.L terminado correctamente#
=. 6amos a construir de dos maneras un bloue %&3+D& ue escriba la cadena LA donde vasL
al rev5s mediante un 4or? (e$ercicio 4 de la &a(ina 2"B)#
'EC&A"E
r!cadena 6A"C1A"2(1");
BE,-)
7$" i -) "E6E"+E 1##&E),#1 ('/ 8O>8E D/-')
&$$%
r!cadena := r!cadena || +(B+#" ('/ 8O>8E D/-',i,1);
E)' &$$%;
'B*+.$(#%(#.%(#.&-)E (r!cadena);
E)';
3
5unciona &or consola 0 en entorno (r)*ico#
-/D E8>O8 /
+rocedimiento +L,-.L terminado correctamente#
=. 6amos a construir de dos maneras un bloue %&3+D& ue escriba la cadena LA donde vasL
al rev5s mediante un 01-&E? (e$ercicio 4 de la &a(ina 2"B)#
'EC&A"E
r!cadena 6A"C1A"2(1");
i B-)A"2.-)#E,E";
BE,-)
i := &E),#1 ('/ 8O>8E D/-') ;
01-&E i P= 1 &$$%
r!cadena := r!cadena || +(B+#" ('/ 8O>8E D/-',i,1);
i := i - 1;
E)' &$$%;
'B*+.$(#%(#.%(#.&-)E (r!cadena);
E)';
3
5unciona &or consola 0 en entorno (r)*ico#
-/D E8>O8 /
+rocedimiento +L,-.L terminado correctamente#
En veI de meter el te8to ue lo pida (solo por consola)?
'EC&A"E
r!cadena 6A"C1A"2(2");
teCto 6A"C1A"2(2");
BE,-)
teCto:='Gcadena';
7$" i -) "E6E"+E 1##&E),#1 (teCto)
&$$%
r!cadena := r!cadena || +(B+#" (teCto,i,1);
E)' &$$%;
'B*+.$(#%(#.%(#.&-)E (r!cadena);
E)';
3
el resultado es:
9ntroduLca un alor &ara cadena: esto es una prueba
anti(uo ": teCto:='Gcadena';
nueo ": teCto:='esto es una &rue1a';
abeurp anu se otse
+rocedimiento +L,-.L terminado correctamente#
B. Crearemos un procedimiento ue reciba un numero de empleado ! una cadena
correspondiente a su nuevo o4icio. El procedimiento deberA localiIar el empleado: modi4icar su
o4icio ! visualiIar los cambios realiIados? (e$ercicio 6 de la &a(ina 2"M)#
C"EA#E $" "E%&ACE
%"$CE'("E cam1iar!o*icio (num!em&leado )(*BE", nueo!o*icio 6A"C1A"2)
A+
!anterior!o*icio em&leados#o*icioH#2%E;
BE,-)
+E&EC# o*icio -)#$ !anterior!o*icio
7"$* em&leados
01E"E em&!no = num!em&leado;
(%'A#E em&leados +E# o*icio = nueo!o*icio
01E"E em&!no = num!em&leado;
'B*+.$(#%(#.%(#.&-)E (num!em&leado || ', O*icio /nterior: ' || !anterior!o*icio || ', O*icio
>ueo : ' || nueo!o*icio);
E)' cam1iar!o*icio;
3
E$ecuci%n &or terminal:
set sererout&ut on
eCecute cam1iar!o*icio (2M00, '89RE=;OR');
Resultado:
2M00O*icio /nterior:E7+LE/8OO*icio >ueo :89RE=;OR
+rocedimiento +L,-.L terminado correctamente#
Escribe un procedimiento con 4uncionalidad similar al ejemplo anterior: ue recibirA un
numero de empleado ! numero de departamento ! asignara el empleado al departamento
indicado en el segundo parAmetro (este llama al procedimiento anterior).
C"EA#E $" "E%&ACE
%"$CE'("E cam!o*i (!a&ellido 6A"C1A", nue!o*icio 6A"C1A"2)
A+
!n!em&leado em&leados#em&!noH#2%E;
BE,-)
+E&EC# em&!no -)#$ !n!em&leado
7"$* em&leados
01E"E a&ellido = !a&ellido;
cam1iar!o*icio (!n!em&leado, nue!o*icio);
E)' cam!o*i;
3
E$ecuci%n &or terminal: E$ecuci%n &or entorno (r)*ico:
e8ecute cam!o*i ('Q97E>EN','/>/L9-;/'); BE,-) cam!o*i! ('Q97E>EN','/>/L9-;/');
E)';
resultado:
2M00O*icio /nterior:E7+LE/8OO*icio >ueo :/>/L9-;/
+rocedimiento +L,-.L terminado correctamente#
Actividades propuestas?
B. 'ado el siguiente procedimiento (/ctiidad 6 &a(ina 2B4)?
C"EA#E $" "E%&ACE
%"$CE'("E crear!de&art (!num!de&t de&artamentos#de&!noH#2%E,
!dnom1re de&artamentos#dnom1reH#2%E 'E7A(&# '+ROD9-9>/L',
!loc de&artamentos#localidadH#2%E 'E7A(&# '+ROD9-9>/L')
A+
BE,-)
-)+E"# -)#$ de&artamentos
6A&(E+ (!num!de&t, !dnom1re, !loc);
E)' crear!de&art;
,
-ndica cuales de las siguientes llamadas son correctas ! cuales son incorrectas. En el caso de ue sean
incorrectas: escribe la llamada correcta usando usando la notacin posicional: siempre ue sea posible?
eCecute crear!de&art;
incorrecto# eCecute crear!de&art ("0, '=O7+R/-', 'D/LE>=9/');
eCecute crear!de&art ("0);
eCecute crear!de&art ("0);
correcto# Las otras dos o&ciones se rellenan &or de*ecto con '+ROD9-9>/L'
eCecute crear!de&art ('=O7+R/-');
incorrecto# eCecute crear!de&art ("0, '=O7+R/-');
eCecute crear!de&art ("0, '=O7+R/-');
correcto#
eCecute crear!de&art ('=O7+R/-', "0);
incorrecto# eCecute crear!de&art ("0, '=O7+R/-');
eCecute crear!de&art ('=O7+R/-', 'D/LE>=9/');
incorrecto# eCecute crear!de&art ("0, '=O7+R/-', 'D/LE>=9/');
eCecute crear!de&art ("0, '=O7+R/-', 'D/LE>=9/');
correcto#
eCecute crear!de&art ('=O7+R/-', "0, 'D/LE>=9/');
incorrecto# eCecute crear!de&art ("0, '=O7+R/-', 'D/LE>=9/');
eCecute crear!de&art ('D/LE>=9/', '=O7+R/-');
incorrecto# eCecute crear!de&art ("0, '=O7+R/-', 'D/LE>=9/');
eCecute crear!de&art ('D/LE>=9/', "0);
incorrecto# eCecute crear!de&art ("0, '=O7+R/-' , 'D/LE>=9/');
)ota: La columna localidad esta con*i(urada en D/R=@/R2(10) 0 +ROD9-9O>/L tiene 11 &or lo Fue se
cam1ia &or +ROD9-9>/L &ara Fue cum&la las es&eci*icaciones de 10 caracteres#
Ejercicios adicionales?
1aI un programa ue visualice los nGmeros pares entre el 2 al ;9.
+ro(rama usando 5OR:
C"EA#E $" "E%&ACE
%"$CE'("E num&ar (num1 )(*BE", num2 )(*BE")
A+
i )(*BE" (2);
BE,-)
7$" i -) num1##num2 &$$%
-7 *$' (i,2)=0 #1E)
'B*+.$(#%(#.%(#.&-)E (i);
E)' -7;
E)' &$$%;
E)';
3
EloFue usando 5OR (lista en ascendente):
'EC&A"E
i )(*BE" (2);
BE,-)
7$" i -) 2##"0 &$$%
-7 *$' (i,2)=0 #1E)
'B*+.$(#%(#.%(#.&-)E (i);
E)' -7;
E)' &$$%;
E)';
3
EloFue usando ?@9LE (lista en descendente):
'EC&A"E
i )(*BE" (2);
BE,-)
i:= "0;
01-&E iP1 &$$%
-7 *$' (i,2)=0 #1E)
'B*+.$(#%(#.%(#.&-)E (i);
E)' -7;
i:= i - 1;
E)' &$$%;
E)';
3
EloFue usando LOO+ (lista en ascendente):
'EC&A"E
i )(*BE"(2):=1;
BE,-)
&$$%
-7 *$'(i,2)=0 #1E)
'B*+.$(#%(#.%(#.&-)E ('=ontador: '||i);
E)' -7;
i:=i + 1;
E/-# 01E) iP="0;
E)' &$$%;
E)';
+ro(rama usando ?@9LE:
C"EA#E $" "E%&ACE
%"$CE'("E num&ar (num1 )(*BE", num2 )(*BE")
A+
i )(*BE" (2);
BE,-)
i:= num2;
01-&E iPnum1 &$$%
-7 *$' (i,2)=0 #1E)
'B*+.$(#%(#.%(#.&-)E (i);
E)' -7;
i:= i - 1;
E)' &$$%;
E)';
3
En entorno (r)*ico (Fue liste los nJmeros &ares entre 2 0 "0):
BE,-) num&ar (2,"0); E)'<
+or consola: E/EC(#E (2,"0);
EJERCICIOS DE REPASO
1. Realizar un procedimiento que reciba 2 n lo! re!te. Sea cual !ea el orden de la re!ta el
re!ultado !ea po!iti"o
CREA#E OR REP$ACE
PROCED%RE restar(num1 &%'(ER, num2 &%'(ER)
AS
resta &%'(ER(5);
(E)I&
resta:=A(S(num1-num2);
D('S*O%#P%#.P%#*$I&E ('La resta de los numeros introducidos es: ' || resta);
E&D restar;
+
Por terminal: Entorno grico:
E,EC%#E restar(!,"); (E)I& restar(!,"); E&D;
2. -er!i.n 1. Realizar un procedimiento que reciba una cadena /letra! cualquier otro
car0cter1. $a "i!ualice al re"2! en el momento que detecte un car0cter que no !ea una
letra no! d2 un men!a3e de error
CREA#E OR REP$ACE
PROCED%RE alre#es (te$to -ARC4AR2)
AS
cadena -ARC4AR2(15);
caracter -ARC4AR2(1);
(E)I&
5OR i I& RE-ERSE 1%%$E&)#4(te$to)
$OOP
cadena:=cadena||S%(S#R(te$to,i,1);
caracter:=(S%(S#R(te$to,i,1));
I5 $O6ER(caracter) &O# (E#6EE& 'a' A&D '&' #4E&
D('S*O%#P%#.P%#*$I&E ('Error el caracter: ' || caracter || ' 'o es una letra');
E&D I5;
E&D $OOP;
D('S*O%#P%#.P%#*$I&E(te$to || ' al re#es es: ' || cadena);
E&D alre#es;
+
Por terminal: Entorno grico:
E,EC%#E alre#es ('(r)ue*a'); (E)I& alre#es('(r)ue*a'); E&D;
&ota: +al como esta el ,- la . la toma como /ue no es una letra, esta contem(lando un a*ecedario sin
., seguramente use el a*ecedario ingles%
-er!i.n 2. Realizar un procedimiento que reciba una cadena /letra! cualquier otro
car0cter1. $a "i!ualice al re"2! en el momento que detecte un car0cter que no !ea una
letra no! d2 un men!a3e de error.
El mismo (ero /ue en #e& de im(rimir los errores, indi/ue error 0 se (are la e1ecuci2n del (rograma:
CREA#E OR REP$ACE
PROCED%RE alre#es (te$to -ARC4AR2)
AS
cadena -ARC4AR2(15);
caracter C4AR;
no3es3letra E,CEP#IO&;
(E)I&
5OR i I& RE-ERSE 1%%$E&)#4(te$to)
$OOP
cadena:=cadena||S%(S#R(te$to,i,1);
caracter:=(S%(S#R(te$to,i,1));
I5 $O6ER(caracter) &O# (E#6EE& 'a' A&D '&' #4E&
RAISE no3es3letra;
E&D I5;
E&D $OOP;
D('S*O%#P%#.P%#*$I&E(te$to || ' al re#es es: ' || cadena);
E,CEP#IO&
64E& no3es3letra #4E& D('S*O%#P%#.P%#*$I&E ('Error el caracter: ' || caracter || '
'o es una letra, introduce te$to ormado (or letras');
E&D alre#es;
+
&ota7 La . la considera /ue no es letra, seguramente (or/ue tome como reerencia el ala*eto ingles%
8. Realizar lo! 2 e3ercicio! anteriore! pero realizando 9uncione!
E1ercicio 1 en unci2n:
CREA#E OR REP$ACE
5%&C#IO& restar2 (num1 &%'(ER, num2 &%'(ER)
RE#%R& '456E7
AS
resta &%'(ER(5);
(E)I&
resta:=A(S(num1-num2);
RE#%R& resta:
E&D restar2;
+
(E)I& D('S*O%#P%#.P%#*$I&E ('La resta de los numeros introducidos es: ' || restar2(!,"));
E&D;
E1ercicio 2 en unci2n:
CREA#E OR REP$ACE
5%&C#IO& alre#es2 (te$to -ARC4AR2)
RE#%R& -ARC4AR2
AS
cadena -ARC4AR2(15);
caracter C4AR;
(E)I&
5OR i I& RE-ERSE 1%%$E&)#4(te$to)
$OOP
cadena:=cadena||S%(S#R(te$to,i,1);
caracter:=(S%(S#R(te$to,i,1));
I5 $O6ER(caracter) &O# (E#6EE& 'a' A&D '&' #4E&
D('S*O%#P%#.P%#*$I&E ('Error el caracter: ' || caracter || ' 'o es una letra');
E&D I5;
E&D $OOP;
RE#%R& cadena;
E&D alre#es2;
8
Por terminal: Entorno grico
E,EC%#E alre#es2('(rue*a') (E)I& D('S*O%#P%#.P%#*$I&E(alre#es2('(rue*a')); E&D;
:. Realizar un procedimiento que de la tabla E'P$EADOS dado un n*emple me de"uel"a
el apellido !u !alario. De no encontrar el emple me d2 un men!a3e de error de
;Empleado no encontrado<
CREA#E OR REP$ACE
PROCED%RE a(esal (num &%'(ER)
AS
#3a(ellido E5PLE9:;<%9PELL,:;=#>PE;
#3salario E5PLE9:;<%<9L97,;=#>PE;
(E)I&
SE$EC# 9PELL,:; I&#O #3a(ellido 5RO' E5PLE9:;< 64ERE E5P3';=num;
SE$EC# <9L97,; I&#O #3salario 5RO' E5PLE9:;< 64ERE E5P3';=num;
D('S*O%#P%#.P%#*$I&E ('El n= em(leado: ' || num || ' corres(onde a: ' || #3a(ellido || ' 0
su salario es: ' || #3salario) ;
E,CEP#IO&
64E& &O*DA#A*5O%&D #4E& RAISE*APP$ICA#IO&*ERROR (-2>>>>,
'Em(leado no encontrado');
E&D a(esal;
+
Por terminal: Entorno grico:
E,EC%#E a(esal(!?@@); (E)I& a(esal (!?@@); E&D;
?. @ueremo! modi9icar el !alario de un empleado en 9unci.n del dpto. en que traba3eA de
tal 9orma que a lo!7
a. Empleado! del dpto. 1B !e le! "a a incrementar el !alario en ?BC
b. Empleado! del dpto. 2B !e le! "a a incrementar el !alario en 1BBC
c. Si taba3an en cualquier otro dpto. !e le! incrementa en 1?BC
El n del emple lo introduciremo! por teclado
DEC$ARE
n3em(le &%'(ER(?); -- em(leado al /ue su*imos el salario
aumento &%'(ER (!) DE5A%$# >; -- cantidad /ue le aumentamos, (or deecto >
de(art &%'(ER(2); -- de(artamento al /ue (ertenece
sueldo &%'(ER("); -- salario actual del em(leado
n3sueldo &%'(ER("); -- nue#o salario del em(leado
(E)I&
n3em(le:=)num3em(; -- (ide (or teclado el numero de em(leado
SE$EC# :EP3'; I&#O de(art 5RO' E5PLE9:;< 64ERE E5P3';=n3em(le;
-- *usco de(artamento asignado al em(leado
SE$EC# <9L97,; I&#O sueldo 5RO' E5PLE9:;< 64ERE E5P3';=n3em(le;
-- *usco salario asignado al em(leado
I5 de(art=1> #4E& -- determino el aumento segun de(artamento
aumento:=aumentoA5>; -- asigno a aumento la cantidad esta*lecida
E$SI5 de(art=2> #4E&
aumento:=aumentoA1>>;
E$SE
aumento:=aumentoA15>;
E&D I5;
n3sueldo:=sueldoAaumento; -- asigno el nue#o salario a la #aria*le
%PDA#E em(leados SE# <9L97,; = n3sueldo
64ERE n3em(le=E5P3';; -- actuali&o la ta*la con el nue#o salario
D('S*O%#P%#.P%#*$I&E ('El em(leado: ' || n3em(le || ' Pertenece al d(t: ' || de(art || ' 0
tendra un incremento de: ' || aumento || ' euros' || ' su salario era de : ' || sueldo || ' 0 con el
aumento es de: ' || n3sueldo);
E,CEP#IO&
64E& &O*DA#A*5O%&D #4E& RAISE*APP$ICA#IO&*ERROR (-2>>>>, 'Em(leado no
encontrado');
E&D;
+
4na #e& introducido (or terminal, (ide n= em(leado 0 e1ecuta las instrucciones:
,ntrodu&ca un #alor (ara num3em(: !"@B
antiguo @: n3em(le:=)num3em(; -- (ide (or teclado el numero de em(leado
nue#o @: n3em(le:=!"@B; -- (ide (or teclado el numero de em(leado
El em(leado: !"@B Pertenece al d(t: C> 0 tendra un incremento de: 15> euros su
salario era de : C>>5 0 con el aumento es de: C155
Procedimiento PL8<DL terminado correctamente%
Eom(rue*o la e$ce(ci2n metiendo un em(leado /ue no e$iste:
,ntrodu&ca un #alor (ara num3em(: C5"!
antiguo !: n3em(le:=)num3em(;
nue#o !: n3em(le:=C5"!;
:EEL97E
F
E77;7 en linea 1:
;79-2>>>>: Em(leado no encontrado
;79->"512: en linea 2?
D. Crear una 9unci.n que aplique el I-A a uno! importe! con la! !iEuiente! caracterF!tica!.
A la 9unci.n !e le pa!ar0 una cantidad un tipo de I-A
a. #ipo de I-A 1 21=
b. #ipo de I-A 2 G=
c. #ipo de I-A 8 :=
&o! de"ol"er0 Importe7 CantidadHCantidad por I-A
Por de9ecto el tipo de I-A !er0 del 21=
CREA#E OR REP$ACE
5%&C#IO& calci#a (cantidad &%'(ER, ti(oi#a &%'(ER DE5A%$# 1)
RE#%R& &%'(ER
AS
im(orte &%'(ER(?);
(E)I&
I5 ti(oi#a=1 #4E&
im(orte:=cantidadA(cantidadF2181>>);
E$SI5 ti(oi#a=2 #4E&
im(orte:=cantidadA(cantidadFB81>>);
E$SI5 ti(oi#a=C #4E&
im(orte:=cantidadA(cantidadF?81>>);
E$SE
D('S*O%#P%#.P%#*$I&E ('Error en ti(o de ,G9, introduce 1, 2 o C');
E&D I5I
RE#%R& im(orte;
E&D calci#a;
+
6EH,' :65<3;4+P4+%P4+3L,'E (calci#a(1>>,1)); E':;
7esultado:
121
<tatement (rocessed%
6EH,' :65<3;4+P4+%P4+3L,'E (calci#a(1>>,?)); E':;
7esultado:
Error en ti(o de ,G9, introduce 1, 2 o C
<tatement (rocessed%
J. Crear una 9unci.n para el calculo de la potencia 9i!cal de un "eKFculo. $a 9ormula para
el calculo e!7 P
9
L #&/C+&1
B.D
donde7
P
9
L Potencia 9i!cal
C L Cilindrada
& L &umero de cilindro!
# L B.BBG para motore! de : tiempo! B.11 para motore! de 2 tiempo!
5ormula eMpre!ada en P$+S@$ podrFa quedar P
9
L #N&NPO6ER//C+&1A B.D1I
A la 9unci.n !e le pa!aran la cilindrada en cm
8
A opcionalmente el n de cilindro! /por
de9ecto !e a!umen :1 el tipo de motor /por de9ecto !e a!umen : tiempo!A en ca!o
contrario !e pondr0 21. $a 9unci.n debe de"ol"er la potencia 9i!cal.
Soluci.n propue!ta pro9e!or7
CREA#E OR REP$ACE
5%&C#IO& (ot3iscal(cilindrada &%'(ER, n3cilindros &%'(ER DE5A%$# ?, ti(o3motor
&%'(ER DE5A%$# ?)
RE#%R& REA$
IS
(ot3iscal REA$;
+ &%'(ER (C,2);
(E)I&
I5 ti(o3motor IJ ? #4E&
ti(o3motor:=2;
E&D I5;
CASE ti(o3motor
64E& ? #4E& +:=>%>B;
64E& 2 #4E& +:=>%11;
E&D CASE;
(ot3iscal:=+Fn3cilindrosFPO6ER((cilindrada8n3cilindros), >%");
RE#%R& (ot3iscal;
E':;
'i !oluci.n7
CREA#E OR REP$ACE
5%&C#IO& (otencia(cilindrada &%'(ER, cilindros &%'(ER DE5A%$# ?, ti(o &%'(ER
DE5A%$# ?)
RE#%R& &%'(ER
AS
P &%'(ER;
+ &%'(ER (C,2);
(E)I&
I5 ti(o = ? #4E&
+:=>%>B;
E$SI5 ti(o = 2 #4E&
+:=>%11;
E$SE
+:=>%11;
E&D I5;
P:=+FcilindrosFPO6ER((cilindrada8cilindros), >%");
RE#%R& P;
E&D I
Administracin de sistemas gestores de Bases de datos Ejercicios cap.12
Ejercicios ejemplo del capitulo (Capitulo 12):
4. Crea un usuario con nombre UUA!"#1$ la cla%e la misma$ El tablespace por omisin es
UE! (&a 'ue no se indica) al 'ue se le asigna ())*ilob&tes. El tablespace para trabajos
temporales es +E,- (&a 'ue tampoco de indica): (ejercicio 4 de la pagina 387)
SQL> C#..EC+ system/manager
Conectado.
SQL> C!EA+E UE! usuario "/E.+"0"E/ B1 usuario 2U#+A !""# #. UE!$
%suario creado.
(. El usuario ,"3A4!# tiene una tabla de nombre +AB3A1 'ue contiene la temperatura de
un serie de ciudades. Concede a 0!A.C"C# los pri%ilegios E3EC+ e ".E!+ en +AB3A1:
(ejercicio ! de la pagina 3&")
Creo los usuarios con S'S()* (C+,,)C( S'S()*/-contrase.a-)
C#..EC+ system/manager
C!EA+E UE! milagros "/E.+"0"E/ B1 milagros 2U#+A !""# #. UE!$
C!EA+E UE! /rancisco "/E.+"0"E/ B1 /rancisco 2U#+A !""# #. UE!$
Se da permiso a los usuarios de cone0i1n
4!A.+ C!EA+E E"#. +# milagros$
4!A.+ !E#U!CE +# milagros$
4!A.+ C!EA+E E"#. +# /rancisco$
Se entra con el usuario milagros y se crea la ta2la (34L3
C#..EC+ milagros/milagros
C!EA+E +AB3E (34L3
(
,+*5C6%737 5A!C6A!2(") 8
()*9):3(%:3 .U,BE!(;)8
C#.+!A".+ ,+*5C6%73759# -!",A!1 *E1 (,+*5C6%737)
)$
Se introducen <alores a la ta2la
".E!+ ".+# (34L3 (,+*5C6%7378()*9):3(%:3) 5A3UE (-46L43+-8;")$
".E!+ ".+# (34L3 (,+*5C6%7378()*9):3(%:3) 5A3UE (-*37:67-8!)$
".E!+ ".+# (34L3 (,+*5C6%7378()*9):3(%:3) 5A3UE (-S)=6LL3-83!)$
".E!+ ".+# (34L3 (,+*5C6%7378()*9):3(%:3) 5A3UE (->%)L=3-8;7)$
Se da permiso a /rancisco de S)L)C( e 6,S):(
4!A.+ E3EC+8 ".E!+ #. (34L3 +# /rancisco$
Se comprue2a ?ue /rancisco puede @acer S)L)C( y 6,S):( en la ta2la de milagros
C#..EC+ /rancisco//rancisco
E3EC+ A 0!#, milagros.(34L3$
".E!+ ".+# milagros.(34L3 (,+*5C6%7378()*9):3(%:3) 5A3UE
(-():%)L-8;")$
milagros concede a /rancisco todos los pri<ilegios so2re (34L3B
C#..EC+ milagros/milagros
4!A.+ A33 #. (34L3 +# /rancisco$
milagros concede todos los pri<ilegios so2re (34L3 a todos los usuarios8 incluidos a los ?ue se
creen despuCs de ejecutar esta orden.
4!A.+ A33 #. (34L3 +# -UB3"C$
milagros concede a juan so2re (34L3 para ?ue pueda modi/icar solo la columna temperatura8 si
intenta modi/icar las dos columnas no podrD8 pero si puede modi/icar la de temperatura.
C#..EC+ system/manager
C!EA+E UE! juan "/E.+"0"E/ B1 juan 2U#+A !""# #. UE!$
4!A.+ C!EA+E E"#. +# juan $
C#..EC+ milagros/milagros
4!A.+ U-/A+E (()*9):3(%:3) #. (34L3 +# juan $
C#..EC+ juan/juan
U-/A+E milagros.(34L3 E+ ()*9):3(%:3E& 76E!E ,+*5C6%737E-():%)L- $
Con la opci1n F6(> G:3,( +9(6+, milagros da permiso a /rancisco para ?ue por ejemplo pueda
@acer inserciones en la ta2la y ademas pueda pasar este pri<ilegio a otros usuarios.
C#..EC+ milagros/milagros
4!A.+ ".E!+ #. (34L3 +# /rancisco 7"+6 4!A.+ #-+"#. $
C#..EC+ /rancisco//rancisco
".E!+ ".+# milagros.(34L3 (,+*5C6%7378()*9):3(%:3) 5A3UE (-S+:63-88) $
4!A.+ ".E!+ #. milagros.(34L3 +# juan $
C#..EC+ juan/juan
".E!+ ".+# milagros.(34L3 (,+*5C6%7378()*9):3(%:3) 5A3UE (-=6G+-87) $
C#..EC+ milagros/milagros
E3EC+ A 0!#, (34L3 $
=er con ?ue usuario se esta logeado B
6#7 %S):
,+*5C6%737 ()*9):3(%:3
HHHHHHHHHH HHHHHHHHHHH
46L43+ ;"
*37:67 !
S)=6LL3 3!
>%)L=3 ;7
():%)L &
S+:63 8
=6G+ 7
7 /ilas seleccionadas.
8. Cuando creamos un usuario tenemos 'ue darle pri%ilegios para 'ue$ como m9nimo$ pueda
iniciar sesin en la base de datos. Creamos al usuario pedro & le damos el pri%ilegio de crear
sesin (C!EA+E E"#.)(ejercicio I de la pagina 3&3)
Creo el usuario con S'S()* y le doy el pri<ilegio de C:)3() S)SS6+,
C#..EC+ system/manager
C!EA+E UE! pedro "/E.+"0"E/ B1 pedro 2U#+A !""# #. UE! $
4!A.+ C!EA+E E"#. +# pedro $
Se concede a pedro el rol C+,,)C(8 lo ?ue le permitira tener todos los pri<ilegios descritos para
este rol (3L(): S)SS6+,8 C:)3() CL%S():8 C:)3() 73(343S) L6,#8 C:)3()
S)Q%),C)8 C:)3() S)SS6+,8 C:)3() S',+,'*8 C:)3() (34L)8 y C:)3() =6)F)B
4!A.+ C#..EC+ +# pedro $
3@ora se concede a pedro y a usuario el pri<ilegio de administrador del sistema (743)B
4!A.+ /BA +# pedro8 usuario $
9ara @acer ?ue milagros pueda 2orrar usuarios8 y ademas pueda conceder este pri<ilegio a otros
usuarios8 se utiliJa la opcion F6(> 37*6, +9(6+,B
4!A.+ /!#- UE! +# milagros 7"+6 A/,". #-+"#. $
9ara @acer ?ue todos los usuarios puedan @acer S)L)C( en cual?uier ta2la de cual?uier usuario8
escri2imosB
4!A.+ E3EC+ A.1 +AB3E +# 9%4L6C $
:. milagros retira los pri%ilegios E3EC+;U-/A+E en +AB3A1 a <rancisco (ejer.7 pag. 3&3)B
Conecto el usuario y ejecuto las ordenes
C#..EC+ milagros/milagros
!E5#*E S)L)C(8 %973() #. (34L3 0!#, /rancisco $
:)=+#) 3LL elimina todos los pri<ilegios concedidos anteriormente so2re algKn o2jeto. La opci1n
F6(> G:3,( +9(6+, desaparece con el pri<ilegio con el cual /ue asignada. )n este ejemplo8
milagros retira todos los pri<ilegios concedidos a /rancisco y juan so2re (34L3B
!E5#*E 3LL #. (34L3 0!#, /rancisco8 juan $
:etiramos el pri<ilegio de 2orrar usuarios a milagrosB
!E5#*E 7:+9 %S): 0!#, milagros $
:etiramos el pri<ilegio de consultar cual?uier ta2la a todos los usuariosB
!E5#*E S)L)C( 3,' (34L) 0!#, 9%4L6C $
:etiramos el pri<ilegio de administrador (743) a los usuarios juan y pedroB
!E5#*E 743 0!#, juan8 pedro $
=. -or ra>ones de seguridad$ creamos el per<il -E!0"31$ en el 'ue limitamos a uno el numero
m?@imo de sesiones concurrentes por usuario & a dos minutos el tiempo de cone@in permitido
por sesin (ejercicio 8 de la pagina 3&8)B
Creo el per/il
C#..EC+ system/manager
C!EA+E -!#0"3E 9):L6L 3","+ E"#.A-E!AUE! C#..EC+A+",E ; B
Como los demDs limites del recurso no se mencionan en la instrucci1n C:)3() 9:+L6L)8 se
utiliJaran los <alores por de/ecto del sistema.
Creo un usuario de prue2a
C!EA+E UE! prue2a "/E.+"0"E/ B1 prue2a 2U#+A ""# #. UE! -!#0"3E
9):L6L $
Le asigno el per/il
4!A.+ C+,,)C( +# prue2a $
9rue2o ?ue si a2ro una sesi1n de oracle con el usuario /unciona8 pero si a2ro otra di/erente da error.
.ota: para 'ue <uncionen estas limitacines Ca& 'ue acti%ar el uso de per<iles en el sistema$
esto se Cace con la siguiente orden por un administrador:
A3+E! 1+E, S)( :)S+%:C)5L6*6(E(:%) $
si no aplica esta orden no tienen e/ecto las limitaciones de los per/iles.
Se crea un per/il ?ue permite 3 intentos de acceso /allidos para la cuenta8 el cuarto producirD el
2lo?ueo de la cuentaB
C#..EC+ system/manager
C!EA+E -!#0"3E 9):L6L; 3","+ 0A"3E/A3#4".AA++E,-+ 3 B
Se asigna el per/il a usuario creado.
A3+E! UE! prue2a -!#0"3E 9):L6L; $
Se prue2a el per/il
C#..EC+ prue2a/prue2a $ tantas <eces @asta ?ue se 2lo?uee la cuenta.
9ara des2lo?uear una cuenta el administrador de la 47 tiene ?ue ejecutarB
A3+E! UE! prue2a ACC#U.+ U.3#C* $
Se prue2a el /uncionamiento del per/il creado y como se 2lo?uea la cuenta tras tres intentos.
3 continuaci1n se modi/ica el per/il anterior para ?ue o2ligue a los usuarios ?ue lo tengan asignado a
cam2iar su contrase.a cada ; dMas.
C#..EC+ system/manager
A3+E! -!#0"3E 9):L6L; 3","+ -A7#!/A3"0EA+",E ; B
SQLA9lusB :elease ".;.".." H 9roduction on Nue )ne " 8B4!B4 ;"3
Copyrig@t (c) &8;8 ;""!8 +racle. 3ll rig@ts reser<ed.
SQL> C+,,)C( prue2a/prue2a $
)::+:B
+:3H""7B in<alid username/passOord$ logon denied
SQL> C+,,)C( prue2a/prue2a $
)::+:B
+:3H""7B in<alid username/passOord$ logon denied
SQL> C+,,)C( prue2a/prue2a $
)::+:B
+:3H""7B in<alid username/passOord$ logon denied
SQL> C+,,)C( prue2a/prue2a $
)::+:B
+:3H;8"""B t@e account is locPed
SQL> C+,,)C( system/manager
Conectado.
SQL> 3L(): %S): prue2a 3CC+%,( %,L+C# $
%suario modi/icado.
SQL> C+,,)C( prue2a/prue2a $
Conectado.
SQL>
Acti%idades propuestas (Capitulo 12)
1. Concede el pri%ilegio E3EC+ e ".E!+ sobre la tabla /E-A!+A,E.+# a uno de tus
compaDeros de clase con la opcin de 'ue se lo pueda conceder a otros (pag.3&").
Creo el usuario ja<i con S'S()* y con el usuario >: ?ue es ?uien tiene la ta2la le concedo
permisos a ja<i
C#..EC+ system/manager
C!EA+E UE! ja<i "/E.+"0"E/ B1 ja<i 2U#+A !""# #. UE!$
4!A.+ C!EA+E E"#. +# ja<i$
C#..EC+ >:/>:
4!A.+ E3EC+$ ".E!+ #. 7)93:(3*),(+S +# ja<i 7"+6 4!A.+ #-+"#.$
Concede el pri%ilegio U-/A+E sobre la columna A-E33"/# de la tabla E,-3EA/# a un
compaDero de clase.
Con el usuario >: ?ue es ?uien tiene la ta2la le concedo el nue<o permiso a ja<i
C#..EC+ >:/>:
4!A.+ U-/A+E (39)LL67+) #. )*9L)37+S +# ja<i$
-rueba los pri%ilegios recibidos sobre las tablas.
9rue2o los pri<ilegios concedidos.
C#..EC+ ja<i/ja<i
".E!+ ".+# >:.7)93:(3*),(+S (7)95,+87,+*4:)8L+C3L6737) 5A3UE
(!"8-9):S+,3L-8-46L43+-)$
E3EC+ A 0!#, >:.7)93:(3*),(+S$
C#..EC+ >:/>:
".E!+ ".+# )*9L)37+S
()*95,+839)LL67+8+L6C6+876:)C(+:8L)C>353L(38S3L3:6+8C+*6S6+,87)95,+)
5A3UE (8;8;8-,+S)-8-=),7)7+:-87I&88S'S73()83!"8"83")$
7)95,+7,+*4:) L+C3L6737
HHHHHHHHHH HHHHHHHHHHHHHH HHHHHHHHHH
" C+,(346L6737 43:C)L+,3
;" 6,=)S(6G3C6+,=3L),C63
3" =),(3S *37:67
4" 9:+7%CC6+, S)=6LL3
!" 9):S+,3L 46L43+
783& :)' 9:)S67),() 7//& 4"" "
7I&8 G3::67+ 76:)C(+: 783& "/"!/& 3""! 3"
778; *3:(6,)Q 76:)C(+: 783& "&/"I/& ;88! "
74&& 3L+,S+ =),7)7+: 7I&8 ;"/";/&" !"" 3&" 3"
7!; L+9)Q )*9L)37+ 778; ;;/";/& I;! "
7I!4 *3:(6,=),7)7+: 7I&8 ;8/"&/& I"" ";" 3"
7844 C3L=+ =),7)7+: 7I&8 "8/"&/& 3!" " 3"
787I G6L 3,3L6S(3 778; "I/"I/&3 43" ;"
7&"" N6*),)Q 3,3L6S(3 778; ;4/"3/8; 3""" ;"
8;8; ,+S) =),7)7+: 7I&8 "/;/; 3!" " 3"
C#..EC+ ja<i/ja<i
U-/A+E >:.)*9L)37+S E+ 39)LL67+E-=3L),C6- 76E!E )*95,+E8;8;$
C#..EC+ >:/>:
E3EC+ E 0!#, )*9L)37+S 76E!E )*95,+E8;8;$
2. Escribe una secuencia de ordenes en la 'ue se crea un usuario$ se le asigna el pri%ilegio de
iniciar sesin en #racle & de crear una tabla. /espuFs conectate con ese usuario & consulta los
pri%ilegios del sistema 'ue tiene. Concede permiso E3EC+ sobre la tabla creada a otro
usuario & consulta los pri%ilegios sobre objetos concedidos & recibidos por el.(pag.3&4).
Creo los usuarios con S'S()*
C#..EC+ system/manager
C!EA+E UE! pepe "/E.+"0"E/ B1 pepe 2U#+A !""# #. UE! $
Se da permiso al usuarios de cone0i1n y creaci1n de ta2las
4!A.+ C!EA+E E"#. +# pepe $
4!A.+ !E#U!CE +# pepe $
Se entra con el usuario8 se crea la ta2la (34L3; y se meten <alores
C#..EC+ pepe/pepe
C!EA+E +AB3E (34L3;
(
C6%737 5A!C6A!2(!) 8
()*9 .U,BE!(;)8
C#.+!A".+ C6%73759# -!",A!1 *E1 (C6%737)
)$
".E!+ ".+# (34L3; (C6%7378()*9) 5A3UE (-S3,(3,7):-8;") $
".E!+ ".+# (34L3; (C6%7378()*9) 5A3UE (-3L*):63-8!) $
".E!+ ".+# (34L3; (C6%7378()*9) 5A3UE (-43:C)L+,3-83!) $
".E!+ ".+# (34L3; (C6%7378()*9) 5A3UE (-4373N+Q-8;7) $
Se consultan pri<ilegios del sistema ?ue tiene
E3EC+ A 0!#, S)SS6+,59:6=S
8;8; =3L),C6 =),7)7+: 7I&8 "/;/; 3!" " 3"
SQL> S)L)C( A L:+* S)SS6+,59:6=S $
9:6=6L)G)
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
C:)3() S)SS6+,
%,L6*6()7 (34L)S93C)
C:)3() (34L)
C:)3() 3,' (34L)
C:)3() CL%S():
C:)3() S)Q%),C)
C:)3() 9:+C)7%:)
C:)3() (:6GG):
C:)3() ('9)
C:)3() +9):3(+:
C:)3() 6,7)R('9)
" /ilas seleccionadas.
E3EC+ A 0!#, %S):5S'S59:6=S $
Se concede permiso de S)L)C( so2re la ta2la a milagros
4!A.+ E3EC+ #. (34L3; +# milagros $
Se @ace una consulta de concesiones so2re o2jetos propiedad de pepe concedidos y reci2idos
E3EC+ A 0!#, %S):5(3459:6=S $
Se @ace una consulta de concesiones so2re o2jetos propiedad de pepe (asignadas)
E3EC+ A 0!#, %S):5(3459:6=S5*37) $
G. Crea un usuario & concedele el rol creado (ACCE#). ADade el pri%ilegio C!EA+E +AB3E
al rol. Consulta los pri%ilegios de sistema 'ue tiene asignados el usuario creado.(pag.3&!).
*e conecto como system y creo el rol 3CC)S+
C#..EC+ system/manager
C!EA+E :+L) 3CC)S+ $
Creo una una ta2la para las prue2as (so2re esta ta2la se concederDn los pri<ilegios al rol)
C!EA+E +AB3E (34L33
(
C6%737 5A!C6A!2(!) 8
()*9 .U,BE!(;)8
C#.+!A".+ C6%73759# -!",A!1 *E1 (C6%737)
)$
".E!+ ".+# (34L33 (C6%7378()*9) 5A3UE (-S3,(3,7):-8;") $
".E!+ ".+# (34L33 (C6%7378()*9) 5A3UE (-3L*):63-8!) $
".E!+ ".+# (34L33 (C6%7378()*9) 5A3UE (-43:C)L+,3-83!) $
".E!+ ".+# (34L33 (C6%7378()*9) 5A3UE (-4373N+Q-8;7) $
Concedo pri<ilegios al rol creado
4!A.+ S)L)C(8 6,S):( #. (34L33 +# 3CC)S+ $
4!A.+ C:)3() S)SS6+, +# 3CC)S+ $
Creo el usuario lurdes y le concedo el rol creado
C!EA+E UE! lurdes "/E.+"0"E/ B1 lurdes 2U#+A !""# #. UE! $
4!A.+ 3CC)S+ +# lurdes $
SQL> S)L)C( A L:+* %S):5S'S59:6=S $
%S):,3*) 9:6=6L)G) 37*
HHHHHHHHHHHHHHHHHHHHHHHH HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH HHHHHHH
9)9) %,L6*6()7 (34L)S93C) ,+
9%4L6C S)L)C( 3,' (34L) ,+
9)9) C:)3() S)SS6+, ,+
SQL> S)L)C( A L:+* %S):5(3459:6=S $
G:3,()) +F,): (34L)5,3*) G:3,(+: 9:6=6L)G) G:3 >6)
*6L3G:+S 9)9) (34L3; 9)9) S)L)C( ,+ ,+
SQL> S)L)C( A L:+* %S):5(3459:6=S $
G:3,()) (34L)5,3*) G:3,(+: 9:6=6L)G) G:3 >6)
*6L3G:+S (34L3; 9)9) S)L)C( ,+,+
3.ado un pri<ilegio al rol creado
4!A.+ C:)3() (34L) +# 3CC)S+ $
*e conecto como el usuario lurdes y consulto sus pri<ilegios de sistema
C#..EC+ lurdes/lurdes
E3EC+ A 0!#, S)SS6+,59:6=S $
E3EC+ A 0!#, %S):5S'S59:6=S $
Acti%idades complementarias (Capitulo 12 pag.4)1)
1. Crea una base de datos de <orma manual llamada #!AC3E1). igue el procedimiento del
caso practico 2.
,o @ay ?ue @acerlo.
2. Una %e> creada la base de datos$ crea un usuario & dale permiso para conectarse & crear
objetos. Crea una tabla con el <ormato 'ue desees. !esuel%e las situaciones 'ue se presenten.
,o @ay ?ue @acerlo
G. Crea un rol 'ue tenga los siguientes pri%ilegios:
".E!+ & E3EC+ en /E-A! & E,-3E$ C!EA+E E"#.$ C!EA+E +1-E$ C!EA+E
+AB3E & C!EA+E 5"E7.
*e conecto como system y creo el rol :+L
C#..EC+ system/manager
C!EA+E :+L) :+L $
Creo las ta2las
C!EA+E (34L) 7)93:(3*),(+S
( 7)95,+ .U,BE!(;)8
7,+*4:) 5A!C6A!2(4)8
L+C3L6737 5A!C6A!2(")8
C#.+!A".+ 9#57)93:(3*),(+S57)95,+ 9:6*3:' #)' (7)95,+) )$
C!EA+E (34L) )*9L)37+S
( )*95,+ .U,BE!(4)8
39)LL67+ 5A!C6A!2(8)8
+L6C6+ 5A!C6A!2(")8
76:)C(+: .U,BE!(4)8
L)C>353L(3 /A+E8
S3L3:6+ .U,BE!(I)8
C+*6S6+, .U,BE!(I)8
7)95,+ .U,BE! (;)8
SQL> S)L)C( A L:+* SESSION_PRIVS ;
PRIVILEGE
----------------------------------------
CREATE SESSION
CREATE TABLE
SQL> S)L)C( A L:+* %S):5S'S59:6=S $
ninguna /ila seleccionada
C#.+!A".+ 9#5)*9L)37+S5)*95,+ 9:6*3:' #)' ()*95,+)8
C#.+!A".+ L#5)*9576:)C(+: L+:)6G, #)' (76:)C(+:)
:)L):),C)S )*9L)37+S()*95,+)8
C#.+!A".+ L#5)*957)95,+ L+:)6G, #)' (7)95,+)
:)L):),C)S 7)93:(3*),(+S(7)95,+) )$
".E!+ ".+# 7)93:(3*),(+S 5A3UE("8 -C+,(346L6737-8 -43:C)L+,3-) $
".E!+ ".+# 7)93:(3*),(+S 5A3UE(;"8 -6,=)S(6G3C6+,-8 -=3L),C63-) $
".E!+ ".+# 7)93:(3*),(+S 5A3UE(3"8 -=),(3S-8 -*37:67-) $
".E!+ ".+# 7)93:(3*),(+S 5A3UE(4"8 -9:+7%CC6+,-8 -S)=6LL3-) $
".E!+ ".+# )*9L)37+S 5A3UE (783&8-:)'-8 -9:)S67),()-8,%LL8-7H,+=H
&&-84""8 ,%LL8 ") $
".E!+ ".+# )*9L)37+S 5A3UE (7I&88-G3::67+-8 -76:)C(+:-8 783&8-"H*3'H
&&-83""!8 ,%LL8 3") $
".E!+ ".+# )*9L)37+S 5A3UE (778;8-*3:(6,)Q-8-76:)C(+:-8 783&8-"&HN%,H
&&-8;88!8 ,%LL8 ") $
".E!+ ".+# )*9L)37+S 5A3UE (74&&8-3L+,S+-8-=),7)7+:-8 7I&88-;"HL)4H
&&"-8!""83&"83") $
".E!+ ".+# )*9L)37+S 5A3UE (7!;8-L+9)Q-8 -)*9L)37+-8 778;8-;;HL)4H
&&-8I;!8 ,%LL8") $
".E!+ ".+# )*9L)37+S 5A3UE (7I!48-*3:(6,-8 -=),7)7+:-8 7I&88-;8HS)9H
&&-8I""8 ";"8 3") $
".E!+ ".+# )*9L)37+S 5A3UE (78448-C3L=+-8 -=),7)7+:-8 7I&88-"8HS)9H
&&-83!"8 "8 3") $
".E!+ ".+# )*9L)37+S 5A3UE (787I8-G6L-8 -3,3L6S(3-8 778;8-"IHN%,H&&3-843"8
,%LL8 ;") $
".E!+ ".+# )*9L)37+S 5A3UE (7&""8-N6*),)Q-8 -)*9L)37+-8 778;8-;4H*3:H
&8;-83"""8 ,%LL8 ;") $
Concedo pri<ilegios al rol creado
4!A.+ 6,S):(8 S)L)C( #. 7)93:(3*),(+S +# :+L $
4!A.+ 6,S):(8 S)L)C( #. )*9L)37+S +# :+L $
4!A.+ C:)3() S)SS6+,8 C:)3() ('9)8 C:)3() (34L)8 C:)3() =6)F +# :+L $
4. C!EA un usuario llamado comprador. El tablespace por de<ecto$ es UE!. e le asigna 1
,B en el tablespace UE!. El tablespace temporal sera +E,-. e le asigna el rol anterior.
*e conecto como system y creo el usuario
C#..EC+ system/manager
C!EA+E UE! comprador "/E.+"0"E/ B1 comprador /E0AU3+ (34L)S93C) %S):S
+E,-#!A!1 (34L)S93C) ()*9 2U#+A * #. UE! $
4!A.+ :+L +# comprador $
(. !eali>a la siguiente secuencia de instrucciones en el orden indicado:
1. Crea un usuario de base de datos 'ue tenga <unciones de administrador.
C#..EC+ system/manager
C!EA+E UE! admin "/E.+"0"E/ B1 admin 2U#+A * #. UE! $
4!A.+ 743 +# admin $
2. Conectate con el nombre del usuario creado.
C#..EC+ admin/admin
G. Crea %arias tablas en el propio es'uema.
C!EA+E (34L) 7)93:(
( 7)95,+ .U,BE!(;)8
7,+*4:) 5A!C6A!2(4)8
L+C3L6737 5A!C6A!2(")8
C#.+!A".+ 9#57)93:(57)95,+ 9:6*3:' #)' (7)95,+) )$
C!EA+E (34L) )*9L)
( )*95,+ .U,BE!(4)8
39)LL67+ 5A!C6A!2(8)8
+L6C6+ 5A!C6A!2(")8
76:)C(+: .U,BE!(4)8
L)C>353L(3 /A+E8
S3L3:6+ .U,BE!(I)8
C+*6S6+, .U,BE!(I)8
7)95,+ .U,BE! (;)8
C#.+!A".+ 9#5)*9L)5)*95,+ 9:6*3:' #)' ()*95,+)8
C#.+!A".+ L#5)*9576:)C(+: L+:)6G, #)' (76:)C(+:)
:)L):),C)S )*9L)()*95,+)8
C#.+!A".+ L#5)*957)95,+ L+:)6G, #)' (7)95,+)
:)L):),C)S 7)93:((7)95,+) )$
".E!+ ".+# 7)93:( 5A3UE("8 -C+,(346L6737-8 -43:C)L+,3-) $
".E!+ ".+# 7)93:( 5A3UE(;"8 -6,=)S(6G3C6+,-8 -=3L),C63-) $
".E!+ ".+# 7)93:( 5A3UE(3"8 -=),(3S-8 -*37:67-) $
".E!+ ".+# 7)93:( 5A3UE(4"8 -9:+7%CC6+,-8 -S)=6LL3-) $
".E!+ ".+# )*9L) 5A3UE (783&8-:)'-8 -9:)S67),()-8,%LL8-7H,+=H&&-84""8
,%LL8 ") $
".E!+ ".+# )*9L) 5A3UE (7I&88-G3::67+-8 -76:)C(+:-8 783&8-"H*3'H&&-83""!8
,%LL8 3") $
".E!+ ".+# )*9L) 5A3UE (778;8-*3:(6,)Q-8-76:)C(+:-8 783&8-"&HN%,H&&-8;88!8
,%LL8 ") $
".E!+ ".+# )*9L) 5A3UE (74&&8-3L+,S+-8-=),7)7+:-8 7I&88-;"HL)4H
&&"-8!""83&"83") $
".E!+ ".+# )*9L) 5A3UE (7!;8-L+9)Q-8 -)*9L)37+-8 778;8-;;HL)4H&&-8I;!8
,%LL8") $
".E!+ ".+# )*9L) 5A3UE (7I!48-*3:(6,-8 -=),7)7+:-8 7I&88-;8HS)9H&&-8I""8
";"8 3") $
".E!+ ".+# )*9L) 5A3UE (78448-C3L=+-8 -=),7)7+:-8 7I&88-"8HS)9H&&-83!"8 "8
3") $
".E!+ ".+# )*9L) 5A3UE (787I8-G6L-8 -3,3L6S(3-8 778;8-"IHN%,H&&3-843"8 ,%LL8
;") $
".E!+ ".+# )*9L) 5A3UE (7&""8-N6*),)Q-8 -)*9L)37+-8 778;8-;4H*3:H
&8;-83"""8 ,%LL8 ;") $
4. Crea cinco usuarios nue%os asign?ndoles un tablespace por de<ecto & cuota (UU1$
UU2$ UUG$ UU( & UU().
C!EA+E UE! %S% "/E.+"0"E/ B1 %S% 2U#+A !""# #. UE! B
C!EA+E UE! %S%; "/E.+"0"E/ B1 %S%; 2U#+A !""# #. UE! B
C!EA+E UE! %S%3 "/E.+"0"E/ B1 %S%3 2U#+A !""# #. UE! B
C!EA+E UE! %S%4 "/E.+"0"E/ B1 %S%4 2U#+A !""# #. UE! B
C!EA+E UE! %S%! "/E.+"0"E/ B1 %S%! 2U#+A !""# #. UE! B
(. /a permiso a uno de los usuarios (UU1) solo para 'ue pueda conectarse a la base de
datos.
4!A.+ C:)3() S)SS6+, +# %S%B
Se prue2a el permiso otorgado.
8. Crea un rol 'ue permita conectarse a la base de datos & Cacer E3EC+ sobre algunas
tablas.
C!EA+E !#3E :+L; B
4!A.+ C:)3() S)SS6+, +# :+L; B
4!A.+ S)L)C( #. 7)93:( +# :+L; $
:. Concede el rol creado a dos de los usuarios creados anteriormente (UU2 & UUG).
4!A.+ :+L; +# %S%;8 %S%3 B
Se prue2a el :+L otorgado.
=. Concede al usuario UU4 pri%ilegios sobre algunas tablas con la opcin de poder
concedFrselos a otros usuarios.
4!A.+ C:)3() S)SS6+, +# %S%4 B
4!A.+ E3EC+$ ".E!+ #. )*9L) +# %S%4 7"+6 4!A.+ #-+"#. B
Se prue2a el pri<ilegio otorgado.
H. Concede al usuario UU( cuatro pri%ilegios de sistema$ dos de ellos$ con la opcin de
poder concedFrselos a otros usuarios.
4!A.+ C:)3() :+L) +# %S%! B
4!A.+ C:)3() %S): +# %S%! B
4!A.+ C:)3() S)SS6+, +# %S%! 7"+6 A/,". #-+"#. B
4!A.+ C:)3() (34L) +# %S%! 7"+6 A/,". #-+"#. B
Se prue2an algunos de los pri<ilegios otorgados.
SQL> C+,,)C( %S%/%S% $
Conectado.
SQL> C+,,)C( %S%;/%S%;
Conectado.
SQL> S)L)C( A L:+* admin.7)93:( $
7)95,+ 7,+*4:) L+C3L6737
HHHHHHHHHH HHHHHHHHHHHHHH HHHHHHHHHH
" C+,(346L6737 43:C)L+,3
;" 6,=)S(6G3C6+, =3L),C63
3" =),(3S *37:67
4" 9:+7%CC6+, S)=6LL3
SQL> C+,,)C( %S%4/%S%4 $
Conectado.
SQL> G:3,( S)L)C( +, admin.)*9L) (+ %S%! $
Concesion terminada correctamente.
1). Concede a todos los usuarios de la base de datos pri%ilegios para 'ue puedan modi<icar
ciertas columnas de algunas tablas.
4!A.+ U-/A+E (39)LL67+) #. )*9L) +# 9%4L6C B
Se prue2a el pri<ilegio otorgado.
11. 2uita a los usuarios UUG & UU4 todos los pri%ilegios 'ue ten9an asignados.
C#..EC+ admin/admin
!E5#*E :+L; 0!#, %S%3 B
!E5#*E S)L)C(8 6,S):( #. )*9L) 0!#, %S%4 B
12. 6a> 'ue UU( solo pueda conectarse en dos sesiones concurrentes a la %e>.
C#..EC+ admin/admin
C!EA+E -!#0"3E 9):L6L3 3","+ E"#.A-E!AUE! ; B
A3+E! UE! %S%! -!#0"3E 9):L6L3 $
.ota: para 'ue <uncionen esta limitacin Ca& 'ue acti%ar el uso de per<iles en el sistema$ esto
se Cace con la siguiente orden por un administrador:
. A3+E! 1+E, S)( :)S+%:C)5L6*6(E(:%) $
1G. 3imita el tiempo de cone@in a la base de datos a cinco minutos a los usuarios UU2 &
UUG.
C#..EC+ admin/admin
C!EA+E -!#0"3E 9):L6L4 3","+ C#..EC+A+",E ; B
A3+E! UE! %S%; -!#0"3E 9):L6L4 B
A3+E! UE! %S%3 -!#0"3E 9):L6L4 B
.ota: para 'ue <uncionen esta limitacin Ca& 'ue acti%ar el uso de per<iles en el sistema$ esto
se Cace con la siguiente orden por un administrador:
. A3+E! 1+E, S)( :)S+%:C)5L6*6(E(:%) $
SQL> C+,,)C( %S%!/%S%!
Conectado.
SQL> C:)3() :+L) :+L3 $
:ol creado.
SQL> C:)3() %S): %S%I 67),(6L6)7 4' %S%I Q%+(3 !""# +, %S):S $
%suario creado.
SQL> C+,,)C( %S%/%S%
Conectado.
SQL> %973() admin.)*9L) S)( 39)LL67+E-=3L),- F>):) )*95,+E7&"" $
/ila actualiJada.
Ejercicios adicionales Cap.12
1. Crear un usuario de nombre milagritos & asignarle una cuota en el tablespace UE! de
1))I.
C#..EC+ system/manager
C!EA+E UE! milagritos "/E.+"0"E/ B1 milagritos /E0AU3+ +AB3E-ACE %S):S
2U#+A !""# #. UE! $
2. Crear un rol !#31 & concederle los permisos de E3EC+ & /E3E+E en las tablas 'ue
se 'uieran (emple & depart).
C!EA+E !#3E :+L B
4!A.+ S)L)C(8 7)L)() #. 7)93:(3*),(+S +# :+L $
4!A.+ S)L)C(8 7)L)() #. )*9L)37+S +# :+L $
G. ADadir ".E!+ & U-/A+E al !#31 en otros dos tablas.
4!A.+ 6,S):(8 %973() #. (34L33 +# :+L $
4!A.+ 6,S):(8 %973() #. 43,C+S +# :+L $
4. ADade al rol creado 2 pri%ilegios del sistema.
4!A.+ C:)3() S)SS6+,8 C:)3() (34L) +# :+L B
(. Concede el rol (!#31) creado al usuario creado (milagritos) con la opcin de 'ue pueda
concedFrselo a otros usuarios.
4!A.+ :+L +# milagritos 7"+6 A/,". #-+"#. B
8. JComo podemos %er los pri%ilegios del sistema del usuario acti%oK
C#..EC+ milagritos/milagritos
E3EC+ A 0!#, %S):5S'S59:6=S $
)ste comando da como resultadoB
ninguna /ila seleccionada
E3EC+ A 0!#, S)SS6+,59:6=S $
Sin em2argo este si da resultadosB
9:6=6L)G)
HHHHHHHHHHHHHHHHHHHHHHHHHHH
C:)3() S)SS6+,
C:)3() (34L)
9ara compro2ar los pri<ilegios se @acen consultas8 2orrados8 actualiJaciones e insercionesB
E3EC+ A 0!#, system.7)93:(3*),(+S $
E3EC+ A 0!#, system.)*9L)37+S $
/E3E+E 0!#, system.7)93:(3*),(+S 76E!E 7)95,+E4" $
/E3E+E 0!#, system.)*9L)37+S 76E!E )*95,+E7&"" $
".E!+ ".+# system.(34L33 5A3UE (-S+*):3-8;") $
U-/A+E system.(34L33 S)( ()*9E;! 76E!E C6%737E-S+*):3- $
".E!+ ".+# system.43,C+S 5A3UE (3"7"""&8-43,#-8-*+LL):38 3"-8-*6,3S-8") B
U-/A+E system.43,C+S E+ L+C3L6737E-*+S):- 76E!E ),(5S%CE 3"7"""& B
:. 2uita el permiso de ".E!+ en la tabla @@
C#..EC+ system/manager
!E5#*E 6,S):( #. (34L33 0!#, :+L $
9ara compro2ar ?ue no tiene el pri<ilegio se intenta @acer una inserci1nB
C#..EC+ milagritos/milagritos
".E!+ ".+# system.(34L33 5A3UE (-S3L3S-8;8) $
7a como resultadoB
)::+: en Lynea B
+:3H""3B pri<ilegios insu/icientes
=. JComo podemos %er solo los pri%ilegios 'ue Cemos concedido sobre nuestros objetos a
otros usuariosK.
E3EC+ A 0!#, %S):5(3459:6=S5*37) $
)ste comando no da resultados si antes no concedo permisos a otro usuario so2re o2jetos propios.
9ara pro2ar este comando creo una ta2la con el usuario milagritosB
C#..EC+ milagritos/milagritos
C!EA+E +AB3E (34L34
(C6%737 =3:C>3:;(!) 8
()*9 ,%*4):(;)8
C#.+!A".+ C6%73759# -!",A!1 *E1 (C6%737) ) $
".E!+ ".+# (34L34 (C6%7378()*9) 5A3UE (-S3,(3,7):-8;") $
".E!+ ".+# (34L34 (C6%7378()*9) 5A3UE (-3L*):63-8!) $
".E!+ ".+# (34L34 (C6%7378()*9) 5A3UE (-43:C)L+,3-83!) $
Concedo permiso de E3EC+ so2re la ta2la al usuario /rancisco B
4!A.+ E3EC+ #. (34L34 +# /rancisco$
Consulto los permisos concedidosB
E3EC+ A 0!#, %S):5(3459:6=S5*37) $
H. JComo podemos %er solo los pri%ilegios 'ue Cemos recibido de otros usuariosK.
E3EC+ A 0!#, %S):5(3459:6=S5:)C7 $
)ste comando no da resultados si ates no reci2o permisos so2re o2jetos de otro usuario.
9ara pro2ar este comando me conecto con otro usuario y doy permisos al usuario milagritosB
C#..EC+ pepe/pepe
4!A.+ E3EC+ #. (34L3; +# milagritos$
Consulto los permisos concedidosB
E3EC+ A 0!#, %S):5(3459:6=S5:)C7 $
G:3,()) (34L)5,3*) G:3,(+: 9:6=6L)G) G:3 >6)
HHHHHHHHHHHHHHHHH HHHHHHHHHHHHHHHHHHH HHHHHHHHHHHHHHHHHHHH HHHHHHHHHHHHHHHH HHHHHHH HHHHHH
L:3,C6SC+ (34L34 *6L3G:6(+S S)L)C( ,+ ,+
+F,): (34L)5,3*) G:3,(+: 9:6=6L)G) G:3 >6)
HHHHHHHHHHHHHHHHH HHHHHHHHHHHHHHHHHHH HHHHHHHHHHHHHHHHHHHH HHHHHHHHHHHHHHHH HHHHHHH HHHHHH
9)9) (34L3; 9)9) S)L)C( ,+ ,+
+abla /E-A!+A,E.+#
C:)3() (34L) 7)93:(3*),(+S
( 7)95,+ ,%*4):(;)8
7,+*4:) =3:C>3:;(4)8
L+C3L6737 =3:C>3:;(")8
C+,S(:36,( 9#57)93:(3*),(+S57)95,+ 9:6*3:' #)' (7)95,+) )$
6,S):( 6,(+ 7)93:(3*),(+S =3L%)S("8 -C+,(346L6737-8 -43:C)L+,3-) $
6,S):( 6,(+ 7)93:(3*),(+S =3L%)S(;"8 -6,=)S(6G3C6+,-8 -=3L),C63-) $
6,S):( 6,(+ 7)93:(3*),(+S =3L%)S(3"8 -=),(3S-8 -*37:67-) $
6,S):( 6,(+ 7)93:(3*),(+S =3L%)S(4"8 -9:+7%CC6+,-8 -S)=6LL3-) $
+abla E,-3EA/#
C:)3() (34L) )*9L)37+S
( )*95,+ ,%*4):(4)8
39)LL67+ =3:C>3:;(8)8
+L6C6+ =3:C>3:;(")8
76:)C(+: ,%*4):(4)8
L)C>353L(3 73()8
S3L3:6+ ,%*4):(I)8
C+*6S6+, ,%*4):(I)8
7)95,+ ,%*4): (;)8
C+,S(:36,( 9#5)*9L)37+S5)*95,+ 9:6*3:' #)' ()*95,+)8
C+,S(:36,( L#5)*9576:)C(+: L+:)6G, #)' (76:)C(+:)
:)L):),C)S )*9L)37+S()*95,+)8
C+,S(:36,( L#5)*957)95,+ L+:)6G, #)' (7)95,+)
:)L):),C)S 7)93:(3*),(+S(7)95,+) )$
6,S):( 6,(+ )*9L)37+S =3L%)S (783&8-:)'-8 -9:)S67),()-8,%LL8-7H,+=H&&-84""8 ,%LL8 ") $
6,S):( 6,(+ )*9L)37+S =3L%)S (7I&88-G3::67+-8 -76:)C(+:-8 783&8-"H*3'H&&-83""!8 ,%LL8 3") $
6,S):( 6,(+ )*9L)37+S =3L%)S (778;8-*3:(6,)Q-8-76:)C(+:-8 783&8-"&HN%,H&&-8;88!8 ,%LL8 ") $
6,S):( 6,(+ )*9L)37+S =3L%)S (74&&8-3L+,S+-8-=),7)7+:-8 7I&88-;"HL)4H&&"-8!""83&"83") $
6,S):( 6,(+ )*9L)37+S =3L%)S (7!;8-L+9)Q-8 -)*9L)37+-8 778;8-;;HL)4H&&-8I;!8 ,%LL8") $
6,S):( 6,(+ )*9L)37+S =3L%)S (7I!48-*3:(6,-8 -=),7)7+:-8 7I&88-;8HS)9H&&-8I""8 ";"8 3") $
6,S):( 6,(+ )*9L)37+S =3L%)S (78448-C3L=+-8 -=),7)7+:-8 7I&88-"8HS)9H&&-83!"8 "8 3") $
6,S):( 6,(+ )*9L)37+S =3L%)S (787I8-G6L-8 -3,3L6S(3-8 778;8-"IHN%,H&&3-843"8 ,%LL8 ;") $
6,S):( 6,(+ )*9L)37+S =3L%)S (7&""8-N6*),)Q-8 -)*9L)37+-8 778;8-;4H*3:H&8;-83"""8 ,%LL8 ;") $
+abla +AB3AG
C:)3() (34L) (34L33
(
C6%737 =3:C>3:;(!) 8
()*9 ,%*4):(;)8
C+,S(:36,( C6%73759# 9:6*3:' #)' (C6%737))$
6,S):( 6,(+ (34L33 (C6%7378()*9) =3L%)S (-S3,(3,7):-8;") $
6,S):( 6,(+ (34L33 (C6%7378()*9) =3L%)S (-3L*):63-8!) $
6,S):( 6,(+ (34L33 (C6%7378()*9) =3L%)S (-43:C)L+,3-83!) $
6,S):( 6,(+ (34L33 (C6%7378()*9) =3L%)S (-4373N+Q-8;7) $
+abla BA.C#:
C:)3() (34L) 43,C+S
(),(5S%C ,%*4): (8) ,+( ,%LL8
,+*4:) =3:C>3:; (!")8
76:)CC6+, =3:C>3:; (!")8
L+C3L6737 =3:C>3:; (3")8
()L)L+,+S =3:C>3:; (3")8
C+,S(:36,( 43,C+S59# 9:6*3:' #)'(),(5S%C)) $
6nsert into 2ancos (ent5suc8 nom2re8 direccion8 localidad) <alues (3"7"""88-43,)S(+-8-*3,%)L LL3,)Q38 33-8-*6):)S-)$
6nsert into 2ancos (ent5suc8 nom2re8 direccion8 localidad) <alues (;"48""7"8-C3N3S%:-8-*3,%)L LL3,)Q38 7-8-*6):)S-)$
6nsert into 2ancos (ent5suc8 nom2re8 direccion8 localidad) <alues (43""";!"8->)::):+-8-*3,%)L LL3,)Q38 ;;-8-*6):)S-)$
6nsert into 2ancos (ent5suc8 nom2re8 direccion8 localidad) <alues (8!"";;;;8-S3,(3,7):-8-L3 C3*3:38 3-8-3=6L)S-)$
6nsert into 2ancos (ent5suc8 nom2re8 direccion8 localidad) <alues (;;;;33338-44=-8-L3 :64):38 7-8-L%3,C+-)$
6nsert into 2ancos (ent5suc8 nom2re8 direccion8 localidad) <alues (333344448-3(L3,(6C+-8-G6N+,8 !I-8-L%3,C+-)$
Administracin de sistemas gestores de Bases de datos Ejercicios Cap.13
Ejercicios ejemplo del capitulo (Capitulo 13):
1. A continuacin se crea un tablespace de 15 Megabtes llamado !"ABA#$. El tama%o inicial
para el objeto &ue se cree en el tablespace (por ejemplo' un tabla) es de 1(). El tama%o de la
siguiente e*tensin del objeto tambi+n es 1(), cada e*tensin subsiguiente sera un -5 por 1((
mas grande &ue la anterior. Asignamos dos arc.i/os a este tablespace 0!"ABA#$1.$"A0' de
1(M 0!"ABA#$-.$"A0' de 5M (si no ponemos la ubicacin' el tablespace lo creara en
C:12344!1565!EM3-1): (ejercicio 1 de la pagina 405)
C$44EC! system/manager
C"EA!E !AB7E58ACE TRABAJO DATA!"# $TRABAJO1%ORA$ &!'# 10()
$TRABAJO*%ORA$ &!'# 5( D#A+"T &TORA,# (!-!T!A" 10. -#/T 10. 01T!-1R#A&#
*5) 2
5e crea un tablespace de 1((9 llamado 8E:;E. Asignamos el arc.i/o 08E:;E.$"A0' .abilitando el
crecimiento autom<tico de 1-(9 para la e*tensin siguiente dentro de un espacio m<*imo de 1M:
C"EA!E !AB7E58ACE 0#3+# DATA!"# $0#3+#%ORA$ &!'# 100. A+TO#/T#-D O-
-#/T 1*0. (A/&!'# 1( 2
5e crea un tablespace de des.acer de 1(M llamado =E5>ACE". Asignamos el arc.i/o
0=E5>ACE".$"A0' .abilitando el crecimiento autom<tico de 51-9 para la e*tensin siguiente dentro
de un espacio m<*imo ilimitado.
C"EA!E !AB7E58ACE D#&4A1#R DATA!"# $D#&4A1#R%ORA$ &!'# 10( R#+&#
A+TO#/T#-D O- -#/T 51*. (A/&!'# +-"!(!T#D 2
?Consulta &ue muestra la descripcin de todos los tablespaces del usuario:
C$44EC! system/manager
5E7EC! TAB"#&0A1#5-A(#) 1O-T#-T& @"$M DBA5TAB"#&0A1#& 2
?Consulta &ue muestra inAormacion sobre los arc.i/os utiliBados por los tablespaces (de todos):
C$44EC! system/manager
5E7EC! 6 @"$M DBA5DATA5!"#& 2
?Consulta &ue muestra inAormacin sobre los btes utiliBados por cada usuario en cada tablespaces:
C$44EC! system/manager
5E7EC! 6 @"$M DBA5T&53+OTA& 2
-. 5e agrega un arc.i/o al tablespace !"ABA#$ de C Megabtes llamado 0!"ABA#$3.$"A0:
(ejercicio * de la pagina 407)
C$44EC! system/manager
A7!E" !AB7E58ACE TRABAJO ADD DATA!"# $TRABAJO8%ORA$ &!'# 9( 2
Renom:ramos los arc;i<os TRABAJO1%ORA y TRABAJO*%ORA del ta:lespace TRABAJO) se llamaran
TRABA1%ORA y TRABA*%ORA respecti<amente% los pasos para renom:rar los ta:lespaces son=
&e desacti<a el ta:lespace TRABAJO%
C$44EC! sstemDmanager
A7!E" !AB7E58ACE TRABAJO O"!-# 2
&e cam:ian de nom:re los arc;i<os con el nom:re especi>icado (con ?na terminal de dos)%
#=@Doc?ments and &ettings@j?anAcd @oracleBe@app@oracle@prod?ct@10%*%0@ser<er@data:ase@
#=@oracleBe@app@oracle@prod?ct@10%*%0@ser<er@data:aseAcopy TRABAJO1%ORA TRABA1%ORA
#=@oracleBe@app@oracle@prod?ct@10%*%0@ser<er@data:aseAcopy TRABAJO*%ORA TRABA*%ORA
1on la orden A"T#R TAB"#&0A1# y la orden R#-A(# DATA!"# se renom:ran
A7!E" !AB7E58ACE TRABAJO "E4AME DATA!"# $TRABAJO1%ORA$)
$TRABAJO*%ORA$ !$ $TRABA1%ORA$) $TRABA*%ORA$ 2
&e acti<a el ta:lespace
A7!E" !AB7E58ACE TRABAJO O-"!-# 2
Ejercicios de repaso
Conectate con los privilegios de SELECT y UPDATE sobre la tabla EMPLE y concedele a
tu compaero la opcin de concederle los privilegios ue tienes a los dem!s"
Creo las tablas que voy a usar en este ejercicio:
CONNECT system#manager
CREATE TA$LE DEPA%T
& DEP'() NUMBER&*+,
D()M$%E VARCAR!&-.+,
L)CAL/DAD VARCAR!&-0+,
CON"TRA#NT P1'DEPA%T'DEP'() P%/MA%2 1E2 &DEP'()+ +3
CREATE TA$LE EMPLE
& EMP'() NUMBER&.+,
APELL/D) VARCAR!&4+,
)5/C/) VARCAR!&-0+,
D/%ECT)% NUMBER&.+,
5EC6A'ALTA $ATE,
SALA%/) NUMBER&7+,
C)M/S/)( NUMBER&7+,
DEP'() NUMBER &*+,
CON"TRA#NT P1'EMPLE'EMP'() P%/MA%2 1E2 &EMP'()+,
CON"TRA#NT 51'EMPLE'D/%ECT)% 5)%E/8( 1E2 &D/%ECT)%+
%E5E%E(CES EMPLE&EMP'()+,
CON"TRA#NT 51'EMPLE'DEP'() 5)%E/8( 1E2 &DEP'()+
%E5E%E(CES DEPA%T&DEP'()+ +3
#N"ERT #NTO DEPA%T VA%UE"&-0, 9C)(TA$/L/DAD9, 9$A%CEL)(A9+ 3
#N"ERT #NTO DEPA%T VA%UE"&*0, 9/(:EST/8AC/)(9, 9:ALE(C/A9+ 3
#N"ERT #NTO DEPA%T VA%UE"&;0, 9:E(TAS9, 9MAD%/D9+ 3
#N"ERT #NTO DEPA%T VA%UE"&.0, 9P%)DUCC/)(9, 9SE:/LLA9+ 3
#N"ERT #NTO EMPLE VA%UE" &<4;=,9%E29, 9P%ES/DE(TE9,(ULL,9-<>():>-==-9,.-00, (ULL, -0+ 3
#N"ERT #NTO EMPLE VA%UE" &<7=4,98A%%/D)9, 9D/%ECT)%9, <4;=,90->MA2>-==-9,;00?, (ULL, ;0+ 3
#N"ERT #NTO EMPLE VA%UE" &<<4*,9MA%T/(E@9,9D/%ECT)%9, <4;=,90=>AU(>-==-9,*44?, (ULL, -0+ 3
#N"ERT #NTO EMPLE VA%UE" &<.==,9AL)(S)9,9:E(DED)%9, <7=4,9*0>5E$>-==09,-?00,;=0,;0+ 3
#N"ERT #NTO EMPLE VA%UE" &<?*-,9L)PE@9, 9EMPLEAD)9, <<4*,9**>5E$>-==-9,-7*?, (ULL,-0+ 3
#N"ERT #NTO EMPLE VA%UE" &<7?.,9MA%T/(9, 9:E(DED)%9, <7=4,9*4>SEP>-==-9,-700, -0*0, ;0+ 3
#N"ERT #NTO EMPLE VA%UE" &<4..,9CAL:)9, 9:E(DED)%9, <7=4,904>SEP>-==-9,-;?0, 0, ;0+ 3
#N"ERT #NTO EMPLE VA%UE" &<4<7,98/L9, 9A(AL/STA9, <<4*,907>AU(>-==;9,-.;0, (ULL, *0+ 3
#N"ERT #NTO EMPLE VA%UE" &<=00,9A/ME(E@9, 9EMPLEAD)9, <<4*,9*.>MA%>-=4*9,;000, (ULL, *0+ &
Creo los usuario y le concedo privile'ios de "E%ECT ( U)$ATE sobre la tabla EM)%E a
juan y que ade*as se los pueda conceder a otro
CONNECT system#manager
CREATE U"ER Buan- #$ENT#+#E$ B( Buan- ,UOTA ?001 ON U"ER" 3
CREATE U"ER Bavi- #$ENT#+#E$ B( Bavi- ,UOTA ?001 ON U"ER" 3
-RANT CREATE "E""#ON TO Buan- 3
-RANT CREATE "E""#ON TO Bavi- 3
-RANT "E%ECT, U)$ATE ON EMPLE TO Buan- .#T -RANT O)T#ON 3
Concedo los privile'ios a otro usuario y que ade*as se los pueda conceder a los de*/s0
CONNECT Buan-#Buan-
-RANT "E%ECT1 U)$ATE ON system"EMPLE TO Bavi- .#T -RANT O)T#ON &
Concede el privilegio UPDATE al atributo sueldo de tabla EMPLE a un compaero tuyo"
CONNECT system#manager
CREATE U"ER Bose- #$ENT#+#E$ B( Bose- ,UOTA ?001 ON U"ER" 3
-RANT CREATE "E""#ON TO Bose- 3
-RANT U)$ATE &SALA%/)+ ON EMPLE TO Bose- &
Prueba los privilegios anteriores
CONNECT Buan-#Buan-
"E%ECT C 5ROM system"EMPLE 3
U)$ATE system"EMPLE "ET SALA%/)D-;00 .ERE EMP'()D<4<7 3
CONNECT Bavi-#Bavi-
"E%ECT C +ROM system"EMPLE 3
U)$ATE system"EMPLE "ET SALA%/)D-.00 .ERE EMP'()D<4<7 3
-RANT "E%ECT1 U)$ATE ON system"EMPLE TO Bose- &
CONNECT Bose-#Bose-
U)$ATE system"EMPLE "ET SALA%/)D-?00 .ERE EMP'()D<4<7 3
Crea un usuario llamado bego y crea el rol 9ACCES)9"
CONNECT system#manager
CREATE U"ER bego- #$ENT#+#E$ B( bego- ,UOTA ?001 ON U"ER" 3
CREATE RO%E ACCES) 3
A!dele * privilegios de sistema a ese rol y * privilegios de usuario a ese rol y
concedeselos al usuario bego"
CONNECT system#manager
-RANT CREATE "E""#ON1 CREATE TAB%E TO ACCES) &
-RANT "E%ECT1 $E%ETE ON DEPA%T TO ACCES) &
-RANT ACCES) TO bego- &
Consulta los privilegios
CONNECT bego-#bego-
Privilegios del sistema ue tieneE
"E%ECT 2 +ROM SESS/)('P%/:S & "E%ECT 2 +ROM USE%'S2S'P%/:S &
Privilegios sobre tablas ue tiene &no da resultados porue solo tiene concedido un rol+"
"E%ECT 2 +ROM USE%'TA$'P%/:S &
%oles ue tiene asignados &auF el resultado es ACCES) ue es el Gnico rol ue tiene+
"E%ECT C +ROM USE%'%)LE'P%/:S 3
Privilegios del sistema ue tiene el rol o roles asignados
"E%ECT C +ROM %)LE'S2S'P%/:S 3
Privilegios sobre tablas ue tiene el rol o roles asignados
"E%ECT C +ROM %)LE'TA$'P%/:S 3
TambiHn se puede consultar privilegios sobre tablas si los tiene desde el usuario system
CONNECT system#manager
"E%ECT 2 +ROM USE%'TA$'P%/:S .ERE U))ER38%A(T)%+D9$E8)-9 &
Crea un rol con los siguientes privilegiosE
"E%ECT y U)$ATE en las tablas $E)ART y EM)%E
,ue ten'a el privile'io de CREATE "E""#ON1 CREATE TAB%E y CREATE V#E. 0
CONNECT system#manager
CREATE RO%E %)L- 3
-RANT SELECT, UPDATE ON DEPA%T TO %)L- 3
-RANT SELECT, UPDATE ON EMPLE TO %)L- 3
-RANT C%EATE SESS/)(, C%EATE TA$LE, C%EATE :/EI TO %)L- 3
Crea un tablespace llamado ventas, asignale un arcJivo llamado ventas"ora de ?M$
CREATE TAB%E")ACE :E(TAS DATA5/LE 9:E(TAS")%A9 S/@E ?M 3
ModiKica el anterior tablespace para ue pueda auto>eLtenderse sin limite de espacio"
A%TER TAB%E")ACE :E(TAS AUT)EMTE(D )( (EMT ?-*1 MAMS/@E U(L/M/TED 3
me da el siguiente error al eBecutar la instruccinE
)%A>;*<<;E operacin no soportada para tablespace de arcJivo peueo :E(TAS
Crea un usuario con Kunciones de administrador, conectate, introduce varias tablas
&TA$LA-, TA$LA* y TA$LA;+
CONNECT system#manager
CREATE U"ER admin- #$ENT#+#E$ B( admin- ,UOTA ?001 ON USE%S 3
-RANT D$A TO admin- 3
CONNECT admin-#admin- 3
CREATE TAB%E TA$LA-
& C/UDAD VARCAR!&-?+ ,
TEMP NUMBER&*+,
CON"TRA#NT C/UDAD'P1 )R#MAR( 4E( &C/UDAD+ + 3
CREATE TAB%E TA$LA*
& P%):/(C/A VARCAR!&-?+ ,
TEMP NUMBER&*+,
CON"TRA#NT P%):/(C/A'P1 )R#MAR( 4E( &P%):/(C/A+ + 3
CREATE TAB%E TA$LA;
& PA/S VARCAR!&-?+ ,
TEMP NUMBER&*+,
CON"TRA#NT PA/S'P1 )R#MAR( 4E( &PA/S+ + 3
Crea tres usuarios en el tablespace por deKecto de -M$
CREATE U"ER usuario- #$ENT#+#E$ B( usuario- ,UOTA -M ON USE%S 3
CREATE U"ER usuario* #$ENT#+#E$ B( usuario* ,UOTA -M ON USE%S 3
CREATE U"ER usuario; #$ENT#+#E$ B( usuario; ,UOTA -M ON USE%S 3
Da permiso al primer usuario para conectarse y Jacer SELECT
-RANT CREATE "E""#ON TO usuario- 3
-RANT "E%ECT ON TA$LA- TO usuario- &
Crea un rol para conectarse a la base de datos ue realice SELECT a la tabla -, DELETE a
la tabla * y UPDATE a la tabla ;"
CREATE RO%E %)L* 3
-RANT SELECT ON TA$LA- TO %)L* 3
-RANT DELETE ON TA$LA* TO %)L* 3
-RANT UPDATE ON TA$LA; TO %)L* 3
-RANT C%EATE SESS/)( TO %)L* 3
Concede ese rol al usuario * y usuario;
-RANT %)L* TO usuario* 3
-RANT %)L* TO usuario; 3
concede al usuario - privilegios sobre la tabla - y tabla * y ue luego se los pasen a
usuario * y usuario;"
-RANT $E%ETE1 U)$ATE ON TA$LA- TO usuario- .#T -RANT O)T#ON 3
-RANT "E%ECT1 U)$ATE ON TA$LA* TO usuario- .#T -RANT O)T#ON 3
Nuitale a usuario ; todos los privilegios"
REVO4E %)L* +ROM usuario; 3
6aO ue usuario * pueda conectarse en tres sesiones concurrentemente"
CREATE )RO+#%E PE%5- %#M#T "E""#ON"5)ER5U"ER ; 3
A%TER U"ER usuario* )RO+#%E PE%5- 3
Nota: para que 6uncionen esta li*itaci7n 8ay que activar el uso de per6iles en el siste*a1
esto se 8ace con la si'uiente orden por un ad*inistrador:
A%TER "("TEM SET %ES)U%CE'L/M/TDT%UE 3
Limita el tiempo de coneLin a ; minutos a usuario - y usuario ;
CREATE )RO+#%E PE%5* %#M#T CONNECT5T#ME ; 3
A%TER U"ER usuario- )RO+#%E PE%5* 3
A%TER U"ER usuario; )RO+#%E PE%5* 3
Nota: para que 6uncionen esta li*itaci7n 8ay que activar el uso de per6iles en el siste*a1
esto se 8ace con la si'uiente orden por un ad*inistrador:
A%TER "("TEM SET %ES)U%CE'L/M/TDT%UE 3
I
N
S
T
R
U
C
C
I
O
N
E
S
-

L
o
s

v
a
l
o
r
e
s

n
u
l
o
s

e
n

l
a
s

e
x
p
r
e
s
i
o
n
e
s

s
i
e
m
p
r
e

d
a
n

c
o
m
o

r
e
s
u
l
t
a
d
o

u
n

v
a
l
o
r

n
u
l
o
I
n
s
t
r
u
c
c
i

n
D
e
f
i
n
i
c
i

n
E
j
e
m
p
l
o
s
.

E
D
I
n
v
o
c
a

a
l

E
d
i
t
o
r

d
e
l

S
i
s
t
e
m
a
.
.

C
L
E
A
R

S
C
R
B
o
r
r
a

l
a

p
a
n
t
a
l
l
a
.

S
T
A
R
T

f
i
c
h
e
r
o
E
j
e
c
u
t
a

e
l

c
o
n
t
e
n
i
d
o

a
l
m
a
c
e
n
a
d
o

e
n

f
i
c
h
e
r
o
.
s
q
l
.

H
a
y

q
u
e

e
s
p
e
c
i
f
i
c
a
r

l
a

r
u
t
a

c
o
m
p
l
e
t
a
.

R
U
N
R
e
p
i
t
e

l
a

e
j
e
c
u
c
i

n

d
e

l
a

!
l
t
i
m
a

s
e
n
t
e
n
c
i
a

o

d
e

l
o

q
u
e

h
a
y

e
n

e
l

"
u
f
f
e
r
.

R
#
$
.

R
.

L
I
S
T
%
i
s
u
a
l
i
&
a

e
l

c
o
n
t
e
n
i
d
o

d
e
l

"
u
f
f
e
r


e
l

c
o
n
t
e
n
i
d
o

d
e

l
a

l
i
n
e
a

n

.

L
I
S
'
.

L
I
S
'

n
.

L

n
.

S
A

E

f
i
c
h
e
r
o
(
l
m
a
c
e
n
a

e
l

c
o
n
t
e
n
i
d
o

d
e
l

"
u
f
f
e
r

e
n

f
i
c
h
e
r
o
.
s
q
l
.

!
E
T

f
i
c
h
e
r
o
R
e
c
u
p
e
r
a

a
l

"
u
f
f
e
r

e
l

c
o
n
t
e
n
i
d
o

d
e
l

f
i
c
h
e
r
o

f
i
c
h
e
r
o
.
s
q
l
.

I
N
"
U
T
(
)
a
d
e

u
n
a

l
*
n
e
a

a

c
o
n
t
i
n
u
a
c
i

n

d
e

l
a

a
c
t
u
a
l

a
c
t
i
v
a
.

D
E
L
E
l
i
m
i
n
a

l
a

l
*
n
e
a

a
c
t
u
a
l

.

S
"
O
O
L

f
i
c
h
e
r
o
'
o
d
a
s

l
a
s

s
a
l
i
d
a
s

p
o
r

p
a
n
t
a
l
l
a

s
e

a
l
m
a
c
e
n
a
n

e
n

f
i
c
h
e
r
o
.
l
s
t
.

S
"
O
O
L

O
#
#
L
i
"
e
r
a

e
l

a
l
m
a
c
e
n
a
m
i
e
n
t
o

d
e

s
a
l
i
d
a
s

p
o
r

p
a
n
t
a
l
l
a
S
e
n
t
e
n
c
i
$

%
e

c
r
e
$
c
i

n

%
e

t
$
&
l
$
s

'

(
i
s
t
$
s
.

C
R
E
A
T
E

T
A
)
L
E

t
a
"
l
a
+


,
c
o
l
+




t
i
p
o
-
d
a
t
o


.
$
/
'

$
#
L
L
0
1



c
o
l
2




t
i
p
o
-
d
a
t
o


.
$
/
'

$
#
L
L
0
1



.
.
.
3

4
5
r
e
a

l
a

t
a
"
l
a
+

c
o
n

l
o
s

c
a
m
p
o
s

e
s
p
e
c
i
f
i
c
a
d
o
s

c
o
m
o

c
o
l
+
1

c
o
l
2
.
.
.
1

s
i
e
n
d
o

c
a
d
a

c
a
m
p
o

d
e
l

t
i
p
o

y

e
x
t
e
n
s
i

n

d
e
f
i
n
i
d
o
s

c
o
n

t
i
p
o
-
d
a
t
o
.
.

D
E
S
C

t
a
"
l
a
+
6
u
e
s
t
r
a

l
a

d
e
s
c
r
i
p
c
i

n

d
e

l
a

t
a
"
l
a
+
1

l
i
s
t
a
n
d
o

l
o
s

n
o
m
"
r
e
s

d
e

l
o
s

c
a
m
p
o
s
1

t
i
p
o

y

e
x
t
e
n
s
i

n
.
.

C
R
E
A
T
E

T
A
)
L
E

t
a
"
l
a
+


c
o
l
+




t
i
p
o
-
d
a
t
o




5
/
$
S
'
R
(
I
$
'

n
o
m
"
r
e
-
c
o
n
s
t
r
a
i
n
t




r
e
s
t
r
i
c
c
i
o
n
e
s
1


c
o
l
2




t
i
p
o
-
d
a
t
o


.
$
/
'

$
#
L
L
0




5
/
$
S
'
R
(
I
$
'

n
o
m
"
r
e
-
c
o
n
s
t
r
a
i
n
t




r
e
s
t
r
i
c
c
i
o
n
e
s
1



.
.
.

4
.

C
R
E
A
T
E

T
A
)
L
E

t
a
"
l
a
+


,
c
o
l
+




t
i
p
o
-
d
a
t
o
1

c
o
l
2




t
i
p
o
-
d
a
t
o
1


.
.
.
1


5
/
$
S
'
R
(
I
$
'

n
o
m
"
r
e
-
c
o
n
s
t
r
a
i
n
t


7
R
I
6
(
R
8

9
E
8

,
c
o
l
+
1

c
o
l
2
.
.
.
3
1



5
/
$
S
'
R
(
I
$
'

n
o
m
"
r
e
-
c
o
n
s
t
r
a
i
n
t



:
/
R
E
I
;
$

9
E
8

,
c
o
l
+
1
c
o
l
2
.
.
.
3



R
E
:
E
R
E
$
5
E
S

t
a
"
l
a
2

,
c
o
l
+
1

c
o
l
2
.
.
.
3



.
/
$

<
E
L
E
'
E

5
(
S
5
(
<
E
0
1


5
/
$
S
'
R
(
I
$
'

n
o
m
"
r
e
-
c
o
n
s
t
r
a
i
n
t



5
H
E
5
9

c
o
n
d

.
.
.

3

4
.

5
r
e
a
c
i

n

d
e

u
n
a

t
a
"
l
a

c
o
n

r
e
s
t
r
i
c
c
i
o
n
e
s

d
e

c
o
l
u
m
n
a
.
.

R
e
s
t
r
i
c
c
i
o
n
e
s
=

.

$
/
'

$
#
L
L

.

#
$
I
>
#
E

.

7
R
I
6
(
R
8

9
E
8

.

<
E
:
(
#
L
'

%
(
L
#
E

.

R
E
:
E
R
E
$
5
E
S

t
a
"
l
a
2



,
c
o
l
+
1

.
.
.
3



.
/
$

<
E
L
E
'
E

5
(
S
5
(
<
E
0

.

5
H
E
5
9

c
o
n
d
E
n

e
s
t
e

o
t
r
o

c
a
s
o

l
a
s

r
e
s
t
r
i
c
c
i
o
n
e
s

s
e

p
o
n
e
n

a
l

f
i
n
a
l
.
.

C
R
E
A
T
E

T
A
)
L
E

t
a
"
l
a
+


,
c
o
l
+
1

c
o
l
2
1
.
.
.
3


A
S

c
o
n
s
u
l
t
a

4





5
r
e
a
c
i

n

d
e

u
n
a

t
a
"
l
a

a

p
a
r
t
i
r

d
e

l
o
s

d
a
t
o
s

r
e
c
o
?
i
d
o
s

m
e
d
i
a
n
t
e

u
n
a

c
o
n
s
u
l
t
a

e
n

o
t
r
a

t
a
"
l
a
.
.

D
R
O
"

T
A
)
L
E

.
u
s
u
a
r
i
o
.
0
t
a
"
l
a
+


.
5
(
S
5
(
<
E

5
/
$
S
'
R
(
I
$
'
S
0

4





S
e

"
o
r
r
a

l
a

t
a
"
l
a
+

d
e
l

u
s
u
a
r
i
o

e
s
p
e
c
i
f
i
c
a
d
o

.
c
o
n

r
e
s
t
r
i
c
c
i
o
n
e
s

i
n
c
l
u
i
d
a
s
0
.

A
L
T
E
R

T
A
)
L
E

t
a
"
l
a
+

.
A
D
D

,
c
o
l
+

t
i
p
o
-
d
a
t
o
1

c
o
l
2

t
i
p
o
-
d
a
t
o
3
0

.
*
O
D
I
#
+

,
c
o
l
+

t
i
p
o
-
d
a
t
o
1

c
o
l
2

t
i
p
o
-
d
a
t
o
3
0


.
A
D
D

C
O
N
S
T
R
A
I
N
T

r
e
s
t
r
i
c
c
i

n
0


.
D
R
O
"

C
O
N
S
T
R
A
I
N
T

r
e
s
t
r
i
c
c
i

n
0

4



6
o
d
i
f
i
c
a

l
a

t
a
"
l
a
1
a
)
a
d
i
e
n
d
o

n
u
e
v
o
s

c
a
m
p
o
s
1
c
a
m
"
i
a
n
d
o

c
a
r
a
c
t
e
r
*
s
t
i
c
a
s

d
e

l
o
s

c
a
m
p
o
s
1
a
)
a
d
i
e
n
d
o

r
e
s
t
r
i
c
c
i
o
n
e
s
1
s
u
p
r
i
m
i
e
n
d
o

r
e
s
t
r
i
c
c
i
o
n
e
s
.

C
R
E
A
T
E

I
E
,

v
i
s
t
a
+


.
,
c
o
l
+
1

c
o
l
2
1
.
.
.
0



A
S

c
o
n
s
u
l
t
a

4





S
e

c
r
e
a

u
n
a

v
i
s
t
a

c
o
n

u
n
o
s

c
a
m
p
o
s

q
u
e

s
e

l
l
a
m
a
r
@
n

c
o
l
+
1

c
o
l
2
.
.
.

q
u
e

s
e

r
e
l
l
e
n
a
n

c
o
n

l
o
s

d
a
t
o
s

p
r
o
v
e
n
i
e
n
t
e
s

d
e

u
n
a

c
o
n
s
u
l
t
a
.

D
R
O
"

I
E
,

v
i
s
t
a
+

4


S
e

e
l
i
m
i
n
a

l
a

v
i
s
t
a
+
.

C
R
E
A
T
E

.
7
#
B
L
I
5
0

S
+
N
O
N
I
*

s
i
n
o
n
i
m
o
+

#
O
R


.
u
s
u
a
r
i
o
.
0
t
a
"
l
a
+

4


5
r
e
a

u
n

s
i
n

n
i
m
o

p
a
r
a

u
n
a

t
a
"
l
a
.

D
R
O
"

S
+
N
O
N
I
*

u
s
u
a
r
i
o
.
s
i
n
o
n
i
m
o
+

4


S
e

"
o
r
r
a

e
l

s
i
n
o
n
i
m
o
+
.

R
E
N
A
*
E

n
o
m
"
r
e
a
n
t
e
r
i
o
r


T
O

n
o
m
"
r
e
n
u
e
v
o

4


S
e

r
e
n
o
m
"
r
a

u
n
a

t
a
"
l
a

c
o
n

u
n

n
o
m
"
r
e

n
u
e
v
o
S
e
n
t
e
n
c
i
$

%
e

c
o
n
s
u
l
t
$

%
e

%
$
t
o
s
.

S
E
L
E
C
T

.
(
L
L
A
<
I
S
'
I
$
5
'
0
.
c
a
m
p
o
+
1

c
a
m
p
o
2
1
.
.
.

A

B

0


#
R
O
*

.
t
a
"
l
a
+

a
l
i
a
s
1

t
a
"
l
a
2

a
l
i
a
s
1

.
.
.
0


,
-
E
R
E

c
o
n
d



!
R
O
U
"

)
+

e
x
p
1

e
x
p

-
A

I
N
!

c
o
n
d



O
R
D
E
R

B
8

c
a
m
p
o
+

.
<
E
S
5

A

(
S
5
0
1








c
a
m
p
o
2

.
<
E
S
5

A

(
S
5
0
1

.
.
.
s
e
l
e
c
c
i
o
n
a

c
a
m
p
o
s
4
d
e

l
a
,
s
3

t
a
"
l
a
,
s
3
4
s
e
l
e
c
c
i
o
n
a

f
i
l
a
s
4
a
?
r
u
p
a

l
a
s

f
i
l
a
s

,
l
o
s

c
a
m
p
o
s

d
e
"
e
n

e
s
t
a
r

e
n

l
a

S
E
L
E
5
'
3
4
f
i
l
t
r
a

l
o
s

?
r
u
p
o
s

s
e
l
e
c
c
i
o
n
a
n
d
o

y

e
l
i
m
i
n
a
n
d
o
4
c
l
a
s
i
f
i
c
a

l
a

s
a
l
i
d
a
.

/
r
d
e
n
a

l
o
s

?
r
u
p
o
s
.
.

S
e

u
s
a
n

c
o
m
i
l
l
a
s

d
o
"
l
e
s

p
a
r
a

p
o
n
e
r

c
a
"
e
c
e
r
a

a

c
a
d
a

c
o
l
u
m
n
a

e
n

e
l

r
e
s
u
l
t
a
d
o
=
.

S
E
L
E
C
T

c
a
m
p
o
+

.
c
$
&
e
c
e
r
$
/
0

:
R
/
6

t
a
"
l
a
+
.

c
o
n
%
i
c
i
o
n
e
s
=
C
h
e
r
e

$
/
'
(

1

D
C
h
e
r
e

E
<
(
<

2

2
E

4

E
<
(
<

3

2
E
C
h
e
r
e

7
R
E
5
I
/

3
1

D
F

4

7
R
E
5
I
/

2
1

D
F
C
h
e
r
e

<
E
S
5

2
3

+
D

4

<
E
S
5

4
1

+
D
C
h
e
r
e

a
G
H

A
N
D

"
G
I
C
h
e
r
e

a
G
H

O
R

"
G
I
C
h
e
r
e

N
O
T

a
G
H
C
h
e
r
e

(
7
E

L
I
5
E

J
(
K
L
C
h
e
r
e

;
R
#
7
/

L
I
5
E

J
(
-
L
C
h
e
r
e

;
R
#
7
/

I
S

N
U
L
L
C
h
e
r
e

;
R
#
7
/

I
S

N
O
T

N
U
L
L
C
h
e
r
e

<
E
7
'

I
N

,
2
F
1
I
F
1
M
F
3
C
h
e
r
e

<
E
7
'

)
E
T
,
E
E
N

+
F

A
N
D

D
F
.
N
O
T
A
S
=
.

L
o
s

l
i
t
e
r
a
l
e
s

v
a
n

e
n
t
r
e

c
o
m
i
l
l
a
s

s
i
m
p
l
e
s
.

S
i

s
e

u
s
a
n

c
o
m
o
d
i
n
e
s

e
n

u
n
a

c
o
m
p
a
r
a
c
i

n

,
K
1

-
3

h
a
y

q
u
e

u
t
i
l
i
&
a
r

L
I
5
E

y

n
o

1
.

S
i

e
l

c
a
m
p
o

a

c
o
m
p
a
r
a
r

e
s

d
e

t
i
p
o

5
H
(
R
1

s
e

p
u
e
d
e

u
t
i
l
i
&
a
r
=
(
7
E

G
6
e
x
p
r
6

(
7
E

L
I
9
E

7
e
x
p
r













7
S
e

r
e
l
l
e
n
a

a

e
s
p
a
c
i
o
s

t
o
d
a

l
a

l
o
n
?
i
t
u
d

d
e

l
a

v
a
r
i
a
"
l
e

5
H
(
R
#
u
n
c
i
o
n
e
s

%
e

s
e
l
e
c
c
i

n

%
e

%
$
t
o
s
O
U
T
E
R

8
O
I
N

9
:
;
S
e
l
e
c
c
i
o
n
a

a
l
?
u
n
a
s

f
i
l
a
s

d
e

u
n
a

t
a
"
l
a

a
u
n
q
u
e

n
o

t
e
n
?
a
n

c
o
r
r
e
s
p
o
n
d
e
n
c
i
a

c
o
n

l
a
s

f
i
l
a
s

d
e

l
a

o
t
r
a

t
a
"
l
a
.

S
e

p
o
n
e

N

a

l
a

t
a
"
l
a

d
o
n
d
e

e
s
t
@
n

l
a
s

f
i
l
a
s

q
u
e

n
o

t
e
n
d
r
@
n

c
o
r
r
e
s
p
o
n
d
e
n
c
i
a

e
n

l
a

o
t
r
a
.

S
E
L
E
C
T

(
.
<
(
'
/
+
1

B
.
<
(
'
/
2

:
R
/
6

(

B

,
-
E
R
E

(
.
5
L
(
%
E

G

B
.
5
L
(
%
E
9
:
;
9
e
n

e
s
t
e

c
$
s
o

h
$
&
r
<

f
i
l
$
s

%
e

l
$

t
$
&
l
$

A

q
u
e

n
o

t
e
n
=
$
n

c
o
r
r
e
s
p
o
n
%
e
n
c
i
$

e
n

l
$

t
$
&
l
$

)
>

p
o
r

l
o

q
u
e

l
o
s

c
$
m
p
o
s

%
e

l
$

t
$
&
l
$

)

s
e

r
e
l
l
e
n
$
r
<
n

c
o
m
o

N
U
L
L
;
.

U
N
I
O
N

,
(
L
L
3
#
n
e

l
o
s

r
e
s
u
l
t
a
d
o
s

d
e

d
o
s

c
o
n
s
u
l
t
a
s
.

L
a
s

f
i
l
a
s

d
u
p
l
i
c
a
d
a
s

s
e

r
e
d
u
c
e
n

a

u
n
a

e
x
c
e
p
t
o

s
i

s
e

i
n
d
i
c
a

(
L
L
.

S
E
L
E
C
T

c
a
m
p
o
+
1

c
a
m
p
o
2

#
R
O
*

t
a
"
l
a
+

U
N
I
O
N

S
E
L
E
C
T

c
a
m
p
o
+
1

c
a
m
p
o
2

#
R
O
*

t
a
"
l
a
2
.

I
N
T
E
R
S
E
C
T
<
e
v
u
e
l
v
e

l
a
s

f
i
l
a
s

c
o
m
u
n
e
s

d
e

d
o
s

c
o
n
s
u
l
t
a
s
.

S
E
L
E
C
T

c
a
m
p
o
+
1

c
a
m
p
o
2

#
R
O
*

t
a
"
l
a
+

I
N
T
E
R
S
E
C
T

S
E
L
E
C
T

c
a
m
p
o
+
1

c
a
m
p
o
2

#
R
O
*

t
a
"
l
a
2
.

*
I
N
U
S
<
e
v
u
e
l
v
e

l
a
s

f
i
l
a
s

d
e

t
a
"
l
a
+

q
u
e

n
o

e
s
t
@
n

e
n

t
a
"
l
a
2
.

S
E
L
E
C
T

c
a
m
p
o
+
1

c
a
m
p
o
2

#
R
O
*

t
a
"
l
a
+

*
I
N
U
S

S
E
L
E
C
T

c
a
m
p
o
+
1

c
a
m
p
o
2

#
R
O
*

t
a
"
l
a
2
#
u
n
c
i
o
n
e
s

%
e

m
$
n
i
p
u
l
$
c
i

n

%
e

%
$
t
o
s
.

I
N
S
E
R
T

I
N
T
O

t
a
"
l
a

,
c
o
l
+
1

c
o
l
2
1
O
3

A
L
U
E
S

,
v
a
l
+
1

v
a
l
2
1
O
3
I
n
s
e
r
t
a

e
n

l
a
s

c
o
l
u
m
n
a
s

l
o
s

v
a
l
o
r
e
s

e
s
p
e
c
i
f
i
c
a
d
o
s
.

S
i

n
o

s
e

i
n
d
i
c
a
n

l
a
s

c
o
l

s
e

i
n
s
e
r
t
a
r
@
n

v
a
l
o
r
e
s

e
n

t
o
d
o
s

l
o
s

c
a
m
p
o
s
.

I
$
S
E
R
'

I
$
'
/

E
6
7
L
E

$
/
6
1

'
E
L

%
(
L
#
E
S

J
P
o
r
?
e
L
1

J
Q
M
D
D
E
E
R
R
H
L

4
.

I
N
S
E
R
T

I
N
T
O

t
a
"
l
a
+

,
c
o
l
+
1

c
o
l
2
1
O
3
S
E
L
E
C
T

,
S
o
l
+
1

S
o
l
2
1
O
3
#
R
O
*

t
a
"
l
a
2
,
,
-
E
R
E

c
o
n
d
3

4
I
n
s
e
r
t
a

e
n

l
a
s

c
o
l

d
e

l
a

t
a
"
l
a
+

l
o
s

v
a
l
o
r
e
s

d
e

l
a
s

S
o
l

d
e

l
a

t
a
"
l
a
2

q
u
e

c
u
m
p
l
a
n

l
a

c
o
n
d
i
c
i

n
.

I
$
S
E
R
'

I
$
'
/

E
6
7
L
E

,
$
/
6
1

'
E
L
3

S
E
L
E
5
'

,
$
/
6
+
1

'
E
L
+
3

:
R
/
6

E
6
7
L
E
2

T
H
E
R
E

7
/
B
G
L
B
i
l
"
a
o
L
4
.

U
"
D
A
T
E

t
a
"
l
a
S
E
T

c
o
l
+
G
v
a
l
+
1

c
o
l
2
G
v
a
l
2
,
-
E
R
E

c
o
n
d

4
6
o
d
i
f
i
c
a

l
a
s

c
o
l
u
m
n
a
s

d
e

l
a

t
a
"
l
a

c
o
n

l
o
s

v
a
l
o
r
e
s

i
n
d
i
c
a
d
o
s

e
n

l
a
s

f
i
l
a
s

q
u
e

c
u
m
p
l
a
n

l
a

c
o
n
d
i
c
i

n
.

#
7
<
(
'
E

E
6
7
L
E


S
E
'


7
R
/
%
G
L
B
i
&
S
a
i
a
L

T
H
E
R
E

7
R
/
%
G
L
%
i
&
c
a
y
a
L

4
.

U
"
D
A
T
E

t
a
"
l
a
S
E
T

c
o
l
+
G
v
a
l
+
1

c
o
l
2
G
v
a
l
2
,
-
E
R
E

c
o
l
I

G

,
S
E
L
E
5
'
O
3

4
6
o
d
i
f
i
c
a

l
a
s

c
o
l
u
m
n
a
s

d
e

l
a

t
a
"
l
a

c
o
n

l
o
s

v
a
l
o
r
e
s

i
n
d
i
c
a
d
o
s

e
n

l
a
s

f
i
l
a
s

q
u
e

c
u
m
p
l
a
n

l
a

c
o
n
d
i
c
i

n

f
r
u
t
o

d
e

l
a

S
E
L
E
5
'
.

#
7
<
(
'
E

E
6
7
L
E


S
E
'


7
R
/
%
G
L
B
i
&
S
a
i
a
L

T
H
E
R
E

7
R
/
%
G
,
S
E
L
E
5
'

7
R
/
%

:
R
/
6

7
R
/
%
I
$
5
I
(
S

























T
H
E
R
E

5
7
G
M
H
3

4
.

U
"
D
A
T
E

t
a
"
l
a
+
S
E
T

,
c
o
l
1

c
o
l
2
1
O
3

G

,
s
e
l
e
c
t

S
o
l
+
1
S
o
l
2
O































:
R
/
6

t
a
"
l
a
2
3
,
-
E
R
E

c
o
n
d

4
6
o
d
i
f
i
c
a

l
a
s

c
o
l
u
m
n
a
s

d
e

l
a

t
a
"
l
a
+

c
o
n

l
o
s

v
a
l
o
r
e
s

s
e
l
e
c
c
i
o
n
a
d
o
s

d
e

l
a

t
a
"
l
a
2
1

e
n

l
a
s

f
i
l
a
s

q
u
e

c
u
m
p
l
a
n

l
a

c
o
n
d
i
c
i

n
.

#
7
<
(
'
E

E
6
7
L
E


S
E
'


,
(
7
E
$
/
6
3

G

,
S
E
L
E
5
'

#
7
7
E
R
,
(
7
E
$
/
6
3

:
R
/
6

E
6
7
L
E






























T
H
E
R
E

<
$
I
G
I
F
M
D
E
D
M
E
3
T
H
E
R
E

7
R
/
%
G
L
B
i
&
S
a
i
a
L

4
.

D
E
L
E
T
E

9
#
R
O
*
;

t
a
"
l
a
,
-
E
R
E

c
o
n
d

4
B
o
r
r
a

d
e

l
a

t
a
"
l
a

l
a
s

f
i
l
a
s

q
u
e

c
u
m
p
l
a
n

l
a

c
o
n
d
i
c
i

n
.

<
E
L
E
'
E

:
R
/
6

E
6
7
L
E
T
H
E
R
E

7
R
/
%

I
$

,
S
E
L
E
5
'

7
R
/
%

:
R
/
6

<
E
7
(
R
'
3

4
.

C
O
*
*
I
T

4
%
a
l
i
d
a

t
o
d
o
s

l
o
s

c
a
m
"
i
o
s

h
e
c
h
a
s

e
n

l
a

B
<

d
e
s
d
e

q
u
e

a
"
r
i
m
o
s

l
a

!
l
t
i
m
a

s
e
s
i

n

o

d
e
s
d
e

e
l

!
l
t
i
m
o

5
/
6
6
I
'
.

R
O
L
L
)
A
C
5

4
<
e
s
h
a
c
e

l
o
s

c
a
m
"
i
o
s

e
n

l
a


B
<

d
e
s
d
e

e
l

!
l
t
i
m
o

5
/
6
6
I
'
.

A
U
T
O
C
O
*
*
I
T
E
s

u
n

5
/
6
6
I
'

a
u
t
o
m
@
t
i
c
o

q
u
e

s
e

e
j
e
c
u
t
a

t
r
a
s

c
a
d
a

s
e
n
t
e
n
c
i
a

7
a
r
a

a
c
t
i
v
a
r

(
#
'
/
5
/
6
6
I
'
=

,
S
E
'

(
#
'
/
5
/
6
6
I
'

/
$
3
O
t
r
$
s

f
u
n
c
i
o
n
e
s
.

D
E
C
O
D
E

,
v
a
r
1
v
a
l
+
1
c
o
d
+
1

v
a
l
2
1

c
o
d
2
.
.
.
1

v
a
l
d
e
f
e
c
t
o
3
S
i

U
v
a
r
U

e
s

i
?
u
a
l

a

a
l
?
!
n

U
v
a
l
U
1

l
o

s
u
s
t
i
t
u
y
e

p
o
r

s
u

U
c
o
d
U
1

y

s
i

n
o

c
o
i
n
c
i
d
e
1

p
o
r

e
l

v
a
l
o
r

p
o
r

d
e
f
e
c
t
o
.

<
E
5
/
<
E

,
S
E
V
/
1
U
6
U
1

U
6
#
P
E
R
U
1
U
H
U
1

U
H
/
6
B
R
E
U
1
U
S
I
$
<
E
:
I
$
I
R
U
3
.

S
I
?
E

,
e
x
p
r
e
s
i

n
3
<
e
v
u
e
l
v
e

e
l

n
!
m
e
r
o

d
e

"
y
t
e
s

q
u
e

o
c
u
p
a

e
x
p
.

S
E
L
E
5
'

%
S
I
W
E

,
U
(
6
/
R
E
B
I
E
'
(
U
3

:
R
/
6

<
#
(
L
+
F
.

U
S
E
R

6
u
e
s
t
r
a

e
l

u
s
u
a
r
i
o

q
u
e

e
s
t
@

c
o
n
e
c
t
a
d
o
.

S
E
L
E
5
'

#
S
E
R

:
R
/
6

<
#
(
L
S
5
/
'
'
.

S
-
O
,

U
S
E
R
6
u
e
s
t
r
a

q
u
X

u
s
u
a
r
i
o

s
o
m
o
s
.

S
H
/
T

#
S
E
R
e
l

u
s
u
a
r
i
o

e
s

U
S
5
/
'
'
U
.

U
I
D
<
e
v
u
e
l
v
e

e
l

i
d
e
n
t
i
f
i
c
a
d
o
r

d
e
l

u
s
u
a
r
i

a
c
t
u
a
l
.

C
O
N
N
E
C
T

u
s
u
a
r
i
o
Y
p
a
s
s
C
o
r
d
5
o
n
e
c
t
a

e
l

u
s
u
a
r
i
o

c
o
n

s
u

p
a
s
s
C
o
r
d

a

l
a

B
<
.

5
/
$
$
E
5
'

S
5
/
'
'
Y
'
I
;
E
R
5
/
$
E
5
'
(
<
/
#
u
n
c
i
o
n
e
s

$
r
i
t
m
@
t
i
c
$
s
.

A
)
S

,
n
3
<
e
v
u
e
l
v
e

e
l

v
a
l
o
r

a
"
s
o
l
u
t
o

d
e

Z
n
Z
.

S
E
L
E
5
'

(
B
S
,
2
3

:
R
/
6

<
#
(
L
2
.

S
E
L
E
5
'

(
B
S
,
-
2
3

:
R
/
6

<
#
(
L
2
.

C
E
I
L

,
n
3
/
"
t
i
e
n
e

e
l

v
a
l
o
r

e
n
t
e
r
o

i
n
m
d
i
a
t
a
m
e
n
t
e

s
u
p
e
r
i
o
r

o

i
?
u
a
l

a

Z
n
Z
.

S
E
L
E
5
'

5
E
I
L
,
+
I
.
2
3

:
R
/
6

<
#
(
L
+
M
.

S
E
L
E
5
'

5
E
I
L
,
+
I
3

:
R
/
6

<
#
(
L
+
I
.

S
E
L
E
5
'

5
E
I
L
,
-
+
I
.
2
3

:
R
/
6

<
#
(
L
-
+
I
.

#
L
O
O
R

,
n
3
/
"
t
i
e
n
e

e
l

v
a
l
o
r

e
n
t
e
r
o

i
n
m
d
i
a
t
a
m
e
n
t
e

i
n
f
e
r
i
o
r

o

i
?
u
a
l

a

Z
n
Z
.

S
E
L
E
5
'

:
L
/
/
R
,
+
I
.
2
3

:
R
/
6

<
#
(
L
+
I
.

S
E
L
E
5
'

:
L
/
/
R
,
+
I
3

:
R
/
6

<
#
(
L
+
I
.

S
E
L
E
5
'

:
L
/
/
R
,
-
+
I
.
2
3

:
R
/
6

<
#
(
L
-
+
M
.

*
O
D

,
m
1

n
3
<
e
v
u
e
l
v
e

e
l

r
e
s
t
o

d
e

d
i
v
i
d
i
r

m
Y
n
.

S
E
L
E
5
'

6
/
<
,
+
+
1
M
3

:
R
/
6

<
#
(
L
I
.

S
E
L
E
5
'

6
/
<
,
+
+
1
F
3

:
R
/
6

<
#
(
L
+
+
.

N

L

,
v
a
l
o
r
1

e
x
p
r
e
s
i

n
3
S
i

Z
v
a
l
o
r
Z

e
s

$
#
L
L
1

l
o

s
u
s
t
i
t
u
y
e

p
o
r

Z
e
x
p
r
e
s
i

n
Z
4

s
i

n
o
1

d
e
v
u
e
l
v
e

Z
v
a
l
o
r
Z
.

S
E
L
E
5
'

S
(
L
(
R
I
/
1

5
/
6
I
S
I
/
$
1

S
(
L
(
R
I
/

N

$
%
L
,
5
/
6
I
S
I
/
$
1

F
3

:
R
/
6

E
6
7
L
E
4
.

"
O
,
E
R

,
m
1

n
3
<
e
v
u
e
l
v
e

m
n
.

S
E
L
E
5
'

7
/
T
E
R
,
2
1
I
3

:
R
/
6

<
#
(
L
H
.

S
E
L
E
5
'

7
/
T
E
R
,
I
1
2
3

:
R
/
6

<
#
(
L
Q
.

R
O
U
N
D

,
n
u
m
e
r
o

.
1
n
0
3
R
e
d
o
n
d
e
a

n
!
m
e
r
o

c
o
n

Z
n
Z

d
e
c
i
m
a
l
e
s
.

S
E
L
E
5
'

R
/
#
$
<
,
+
.
D
E
1

+
3

:
R
/
6

<
#
(
L
+
.
E
.

S
E
L
E
5
'

R
/
#
$
<
,
+
.
D
E
3

:
R
/
6

<
#
(
L
2
.

S
E
L
E
5
'

R
/
#
$
<
,
+
2
R
.
D
E
1

-
+
3

:
R
/
6

<
#
(
L
+
I
F
.

S
I
!
N

,
v
a
l
o
r
3
I
n
d
i
c
a

e
l

s
i
?
n
o

d
e

Z
v
a
l
o
r
Z
.

S
E
L
E
5
'

S
I
;
$
,
H
.
2
3

:
R
/
6

<
#
(
L
+
.

S
E
L
E
5
'

S
I
;
$
,
-
H
.
2
3

:
R
/
6

<
#
(
L
-
+
.

S
A
R
T

,
n
3
<
e
v
u
e
l
v
e

l
a

r
a
i
&

c
u
a
d
r
a
d
a

d
e

n
.

S
E
L
E
5
'

S
>
R
'
,
Q
3

:
R
/
6

<
#
(
L
I
.

T
R
U
N
C

,
n
u
m
e
r
o

.
1
m
0
3
'
r
u
n
c
a

n
!
m
e
r
o

c
o
n

Z
n
Z

d
e
c
i
m
a
l
e
s
.

S
E
L
E
5
'

'
R
#
$
5
,
+
.
D
E
1

+
3

:
R
/
6

<
#
(
L
+
.
D
.

S
E
L
E
5
'

'
R
#
$
5
,
+
.
D
E
3

:
R
/
6

<
#
(
L
+
.

S
E
L
E
5
'

'
R
#
$
5
,
+
2
R
.
D
E
1

-
+
3

:
R
/
6

<
#
(
L
+
2
F
.

A
R
I
A
N
C
E

,
.
<
I
S
'
I
$
5
'
0

v
a
l
o
r
3
<
e
v
u
e
l
v
e

l
a

v
a
r
i
a
n
&
a

d
e

l
o
s

v
a
l
o
r
e
s
.

S
E
L
E
5
'

%
(
R
I
(
$
5
E
,
S
(
L
(
R
I
/
3

:
R
/
6

E
6
7
L
E

.

A

!

,
n
3
5
a
l
c
u
l
a

e
l

v
a
l
o
r

m
e
d
i
o

d
e

n

i
?
n
o
r
a
n
d
o

l
o
s

v
a
l
o
r
e
s

n
u
l
o
s
.

S
E
L
E
5
'

(
%
;
,
E
<
(
<
3

:
R
/
6

E
6
7
L
E
.

C
O
U
N
T

,
B

A

e
x
p
r
e
s
i

n
3
5
u
e
n
t
a

t
o
d
a
s

l
a
s

f
i
l
a
s

,
B
3

o

l
a
s

q
u
e

n
o

t
i
e
n
e
n

v
a
l
o
r

n
u
l
o
.

S
E
L
E
5
'

5
/
#
$
'

,
B
3

:
R
/
6

E
6
7
L
E
2
M
.

S
E
L
E
5
'

5
/
#
$
'

,
5
/
6
I
S
I
/
$
3

:
R
/
6

E
6
7
L
E
+
F
.

S
E
L
E
5
'

5
/
#
$
'

,
<
I
S
'
I
$
5
'

'
E
L
3

:
R
/
6

E
6
7
L
E
+
E
.

*
A
B

,
e
x
p
r
e
s
i

n
3
5
a
l
c
u
l
a

e
l

m
@
x
i
m
o

v
a
l
o
r

d
e

l
a

e
x
p
r
e
s
i

n
.

S
E
L
E
5
'

6
(
V

,
S
#
E
L
<
/
3

:
R
/
6


E
6
7
L
E
2
D
F
F
.

*
I
N

,
e
x
p
r
e
s
i

n
3
5
a
l
c
u
l
a

e
l

m
*
n
i
m
o

v
a
l
o
r

d
e

l
a

e
x
p
r
e
s
i

n
.

S
E
L
E
5
'

6
I
$

,
S
#
E
L
<
/
3

:
R
/
6

E
6
7
L
E
E
F
F
.

S
U
*

,
e
x
p
r
e
s
i

n
3
/
"
t
i
e
n
e

l
a

s
u
m
a

d
e

l
o
s

v
a
l
o
r
e
s

d
e

l
a

e
x
p
r
e
s
i

n
.

S
E
L
E
5
'

S
#
6

,
S
#
E
L
<
/
3

:
R
/
6

E
6
7
L
E
+
I
F
F
F
F
#
u
n
c
i
o
n
e
s

%
e

l
i
s
t
$
s
.

!
R
E
A
T
E
S
T

,
v
a
l
o
r
+
1

v
a
l
o
r
2
.
.
.
3
/
"
t
i
e
n
e

e
l

m
a
y
o
r

v
a
l
o
r

d
e

l
a

l
i
s
t
a
.

S
E
L
E
5
'

;
R
E
(
'
E
S
'

,
$
/
'
(
+
1

$
/
'
(
2
1

$
/
'
(
I
3

:
R
/
6

$
/
'
(
S
.

L
E
A
S
T

,
v
a
l
o
r
+
1

v
a
l
o
r
2
.
.
.
3
/
"
t
i
e
n
e

e
l

m
e
n
o
r

v
a
l
o
r

d
e

l
a

l
i
s
t
a
.

S
E
L
E
5
'

L
E
(
S
'

,
$
/
'
(
+
1

$
/
'
(
2
1

$
/
'
(
I
3

:
R
/
6

$
/
'
(
S
#
u
n
c
i
o
n
e
s

%
e

c
$
%
e
n
$
s

%
e

c
$
r
$
c
t
e
r
e
s
.

C
-
R

,
n
3
<
e
v
u
e
l
v
e

e
l

c
a
r
@
c
t
e
r

d
e

c

d
i
?
o

(
S
5
I
I

n
.

S
E
L
E
5
'

5
H
R

,
E
D
3

:
R
/
6

<
#
(
L
(
.

A
S
C
I
I

,
c
a
d
3
<
e
v
u
e
l
v
e

e
l

c

d
i
?
o

(
S
5
I
I


d
e

l
a

p
r
i
m
e
r
a

l
e
t
r
a

d
e

U
c
a
d
U
.

S
E
L
E
5
'

S
5
I
I

,
U
(
n
d
o
n
i
U
3

:
R
/
6

<
#
(
L
E
D
.

C
O
N
C
A
T
,
c
a
d
+
1

c
a
d
2
3


c
a
d
U

C
C

c
a
d
U
5
o
n
c
a
t
e
n
a

U
c
a
d
+
U

c
o
n

U
c
a
d
2
U
.

S
E
L
E
5
'

5
/
$
5
(
'

,
U
S
o
y

U
1
$
/
6
3

:
R
/
6

E
6
7
L
E
.

S
E
L
E
5
'

U
S
o
y

U

A
A

$
/
6

:
R
/
6

E
6
7
L
E
S
o
y

L
(
$
<
E
R
.

L
O
,
E
R

,
c
a
d
3
<
e
v
u
e
l
v
e

U
c
a
d
U

t
o
d
o

e
n

m
i
n
!
s
c
u
l
a
s
.

S
E
L
E
5
'

L
/
T
E
R

,
$
/
6
3

:
R
/
6

E
6
7
L
E
l
a
n
d
e
r
.

U
"
"
E
R

,
c
a
d
3
<
e
v
u
e
l
v
e

U
c
a
d
U

t
o
d
o

e
n

m
a
y
!
s
c
u
l
a
s
.

S
E
L
E
5
'

#
7
7
E
R

,
$
/
6
3

:
R
/
6

E
6
7
L
E
L
(
$
<
E
R
.

I
N
I
T
C
A
"

,
c
a
d
3
<
e
v
u
e
l
v
e

e
l

+
[

c
a
r
@
c
t
e
r

d
e

c
a
d

e
n

m
a
y
!
s
c
u
l
a
s

y

e
l

r
e
s
t
o

e
n

m
i
n
!
s
c
u
l
a
s
.

S
E
L
E
5
'

I
$
I
'
5
(
7

,
$
/
6
3

:
R
/
6

E
6
7
L
E
L
a
n
d
e
r
.

L
"
A
D

,
c
a
d
+
1

n

.
1

c
a
d
2
0
3
(
)
a
d
e

a

l
a

i
&
q
u
i
e
r
d
a

d
e

U
c
a
d
+
U

l
o
s

c
a
r
a
c
t
e
r
e
s

d
e

U
c
a
d
2
U

h
a
s
t
a

t
e
n
e
r

u
n
a

c
a
d
e
n
a

d
e

l
o
n
?
i
t
u
d

n
.

S
E
L
E
5
'

L
7
(
<

,
U
L
a
n
d
e
r
U
1

H
1

U
-
U
3

:
R
/
6

<
#
(
L
-
-
L
a
n
d
e
r
.

S
E
L
E
5
'

L
7
(
<

,
U
L
a
n
d
e
r
U
1

H
3

:
R
/
6

<
#
(
L
U


L
a
n
d
e
r
U
.

R
"
A
D

,
c
a
d
+
1

n

.
1

c
a
d
2
0
3
(
)
a
d
e

a

l
a

d
e
r
e
c
h
a

d
e

U
c
a
d
+
U

l
o
s

c
a
r
a
c
t
e
r
e
s

d
e

U
c
a
d
2
U

h
a
s
t
a

t
e
n
e
r

u
n
a

c
a
d
e
n
a

d
e

l
o
n
?
i
t
u
d

n
.

S
E
L
E
5
'

R
7
(
<

,
U
L
a
n
d
e
r
U
1

H
1

U
-
U
3

:
R
/
6

<
#
(
L
L
a
n
d
e
r
-
-
.

S
E
L
E
5
'

R
7
(
<

,
U
L
a
n
d
e
r
U
1

H
3

:
R
/
6

<
#
(
L
U
L
a
n
d
e
r


U
.

L
T
R
I
*

,
c
a
d

.
1

s
e
t
0
3
<
e
v
u
e
l
v
e

U
c
a
d
U

c
o
n

e
l

?
r
u
p
o

d
e

c
a
r
a
c
t
e
r
e
s

d
e

U
s
e
t
U

o
m
i
t
i
d
o
s

p
o
r

l
a

i
&
q
u
i
e
r
d
a
.

S
E
L
E
5
'

L
'
R
I
6

,
U
a
"
a
L
L
L
U
1

U
a
U
3

:
R
/
6

<
#
(
L
"
L
L
L
.

S
E
L
E
5
'

L
'
R
I
6

,
U


a
"
a
L
L
L
U
3

:
R
/
6

<
#
(
L
U
a
"
a
L
L
L
U
.

R
T
R
I
*

,
c
a
d

.
1

s
e
t
0
3
<
e
v
u
e
l
v
e

U
c
a
d
U

c
o
n

e
l

?
r
u
p
o

d
e

c
a
r
a
c
t
e
r
e
s

.

S
E
L
E
5
'

R
'
R
I
6

,
U
L
L
L
4
4
4
4
U
1

U
4
U
3

:
R
/
6

<
#
(
L
L
L
L
d
e

U
s
e
t
U

o
m
i
t
i
d
o
s

p
o
r

l
a

d
e
r
e
c
h
a
.

S
E
L
E
5
'

R
'
R
I
6

,
U


a
"
a
L
L
L


U
3

:
R
/
6

<
#
(
L
U


a
"
a
L
L
L
U
.

R
E
"
L
A
C
E

,
c
a
d
1

c
a
d
+

.
1

c
a
d
2
0
3
<
e
v
u
e
l
v
e

U
c
a
d
U

c
o
n

c
a
d
a

o
c
u
r
r
e
n
c
i
a

U
c
a
d
+
U

s
u
s
t
i
t
u
i
d
a

p
o
r

U
c
a
d
2
U
.

R
E
7
L
(
5
E

,
U
a
"
c
d
a
"
e
U
1
U
a
"
U
1
U
x
x
U
3

:
R
/
6

<
#
(
L
x
x
c
d
x
x
e
.

R
E
7
L
(
5
E

,
U
a
"
c
d
a
"
e
U
1
U
"
U
3

:
R
/
6

<
#
(
L
U
a

c
d
a

e
U
.

S
U
)
S
T
R

,
c
a
d
1

i
n
i
c
i
o

.
1
n
0
3
<
e
v
u
e
l
v
e

e
l

t
r
o
&
o

d
e

U
c
a
d
U

q
u
e

e
m
p
i
e
&
a

e
n

l
a

p
o
s
i
c
i

n

i
n
i
c
i
o


y

t
i
e
n
e

d
e

l
o
n
?
i
t
u
d

n
.

S
#
B
S
'
R

,
U
(
B
5
<
E
:
;
U
1

I
1

2
3

:
R
/
6

<
#
(
L
5
<
.

S
#
B
S
'
R

,
U
(
B
5
<
E
:
;
U
1

-
I
1

2
3

:
R
/
6

<
#
(
L
E
:
.

S
#
B
S
'
R

,
U
(
B
5
<
E
:
;
U
1

I
3

:
R
/
6

<
#
(
L
5
<
E
:
;
.

T
R
A
N
S
L
A
T
E

,
c
a
d
+
1

c
a
d
2
1

c
a
d
I
3
<
e
v
u
e
l
v
e

U
c
a
d
+
U

c
o
n

l
o
s

c
a
r
a
c
t
e
r
e
s

e
n
c
o
n
t
r
a
d
o
s

e
n

U
c
a
d
2
U

s
u
s
t
i
t
u
i
d
o
s

p
o
r

l
o
s

c
a
r
a
c
t
e
r
e
s

d
e

U
c
a
d
I
U
.

'
R
(
$
S
L
(
'
E

,
U
a
"
c
"
a
f
U
1

U
a
"
U
1

U
+
2
U
3
+
2
c
2
+
f
.

'
R
(
$
S
L
(
'
E

,
U
a
"
c
"
a
f
U
1

U
a
"
U
3
U
c
f
U
.

I
N
S
T
R

,
c
a
d
+
1

c
a
d
2

.
1
c
o
m
i
e
n
&
o

.
1
m
0
0
3
<
e
v
u
e
l
v
e

l
a

p
o
s
i
c
i

n

d
e

l
a

m
-
X
s
i
m
a

o
c
u
r
r
e
n
c
i
a

d
e

U
c
a
d
2
U

e
n

U
c
a
d
+
U

e
m
p
e
&
a
n
d
o

l
a

"
!
s
q
u
e
d
a

e
n

l
a

p
o
s
i
c
i

n

c
o
m
i
e
n
&
o
.

I
$
S
'
R

,
U
;
u
a
d
a
l
u
p
e
U
1

U
a
U
1

2
1

2
3
D
.

I
$
S
'
R

,
U
;
u
a
d
a
l
u
p
e
U
1

U
a
U
1

-
D
1

2
3
I
.

I
$
S
'
R

,
U
;
u
a
d
a
l
u
p
e
U
1

U
u
U
3
2
.

L
E
N
!
T
-

,
c
a
d
3
<
e
v
u
e
l
v
e

e
l

n
!
m
e
r
o

d
e

c
a
r
a
c
t
e
r
e
s

d
e

U
c
a
d
U
.

L
E
$
;
'
H

,
U
#
r
r
i
t
x
e
U
3
R
#
u
n
c
i
o
n
e
s

p
$
r
$

m
$
n
e
j
o

%
e

f
e
c
h
$
s
.

S
+
S
D
A
T
E
<
e
v
u
e
l
v
e

l
a

f
e
c
h
a

d
e
l

s
i
s
t
e
m
a
.

S
E
L
E
5
'

S
8
S
<
(
'
E

:
R
/
6

<
#
(
L
F
2
Y
+
F
Y
F
2
.

A
D
D
D
*
O
N
T
-
S

,
f
e
c
h
a
1

n
3
(
)
a
d
e

n

m
e
s
e
s

a

l
a

f
e
c
h
a
.

S
E
L
E
5
'

(
<
<
-
6
/
$
'
H
S

,
U
+
R
Y
F
+
Y
F
2
U
1

2
3

:
R
/
6

<
#
(
L
+
R
Y
F
I
Y
F
2
.

L
A
S
T
D
D
A
+

,
f
e
c
h
a
3
<
e
v
u
e
l
v
e

l
a

f
e
c
h
a

d
e
l

!
l
t
i
m
o

d
*
a

d
e

e
s
e

m
e
s
.

S
E
L
E
5
'

L
(
S
'
-
<
(
8

,
U
F
+
Y
F
I
Y
F
2
U
3

:
R
/
6

<
#
(
L
I
+
Y
F
I
Y
F
2
.

*
O
N
T
-
S
D
)
E
T
,
E
E
N

,
f
e
c
h
a
+
1

f
e
c
h
a
2
3
<
e
v
u
e
l
v
e

a

d
i
f
e
r
e
n
c
i
a

e
n

m
e
s
e
s

e
n
t
r
e

a
m
"
a
s

f
e
c
h
a
s
.

S
E
L
E
5
'

6
/
$
'
H
S
-
B
E
'
T
E
E
$

,
S
8
S
<
(
'
E
1

f
e
c
h
a
$
a
c
3
Y
+
2
5
a
l
c
u
l
a
r
*
a

l
a

e
d
a
d
.

N
E
B
T
D
D
A
+

,
f
e
c
h
a
1

c
a
d
3
<
e
v
u
e
l
v
e

l
a

f
e
c
h
a

d
e
l

p
r
i
m
e
r

d
*
a

d
e

l
a

s
e
m
a
n
a

i
n
d
i
c
a
d
o

p
o
r

U
c
a
d
U

d
e
s
p
u
X
s

d
e

l
a

f
e
c
h
a

i
n
d
i
c
a
d
a

p
o
r

f
e
c
h
a
.

S
E
L
E
5
'

$
E
V
'
-
<
(
8

,
S
8
S
<
(
'
E
1

\
P
#
E
%
E
S
U
3

F
I
Y
+
F
Y
F
2
#
u
n
c
i
o
n
e
s

%
e

c
o
n
(
e
r
s
i

n
.

T
O
D
C
-
A
R

,
:
E
5
H
(
1

U
f
o
r
m
a
t
o
U
3
5
o
n
v
i
e
r
t
e

l
a

f
e
c
h
a

d
e

t
i
p
o

<
(
'
E

a

t
i
p
o

%
(
R
5
H
(
R
2

c
o
n

e
l

f
o
r
m
a
t
o

e
s
p
e
c
i
f
i
c
a
d
o
S
i

S
8
S
<
(
'
E
G
+
R
Y
+
F
Y
F
2
1

h
a
c
i
e
n
d
o

S
E
L
E
5
'

'
/
-
5
H
(
R
.
.
.
.
.
.

,
S
8
S
<
(
'
E
1

U
y
y
y
y
U
3

:
R
/
6

<
#
(
L
2
F
F
2

.
.
.

,
S
8
S
<
(
'
E
1

U
y
y
U
3

:
R
/
6

<
#
(
L
F
2
.
.
.

,
S
8
S
<
(
'
E
1

U
q
U
3

:
R
/
6

<
#
(
L
I
.
.
.

,
S
8
S
<
(
'
E
1

U
m
m
U
3

:
R
/
6

<
#
(
L
+
F
.
.
.

,
S
8
S
<
(
'
E
1

U
m
o
n
t
h
U
3

:
R
/
6

<
#
(
L
/
5
'
#
B
R
E
.
.
.

,
S
8
S
<
(
'
E
1

U
q
U
3

:
R
/
6

<
#
(
L
I
.
.
.

,
S
8
S
<
(
'
E
1

U
d
d
U
3

:
R
/
6

<
#
(
L
+
R
.
.
.

,
S
8
S
<
(
'
E
1

U
m
o
n
U
3

:
R
/
6

<
#
(
L
/
5
'
.

T
O
D
C
-
A
R

,
n
!
m
e
r
o
1

U
f
o
r
m
a
t
o
U
3
5
o
n
v
i
e
r
t
e

u
n

n
!
m
e
r
o

d
e

t
i
p
o

$
#
6
B
E
R

a

t
i
p
o

%
(
R
5
H
(
R
2

c
o
n

e
l

f
o
r
m
a
t
o

e
s
p
e
c
i
f
i
c
a
d
o
6
@
s
c
a
r
a
s
=
Q


<
e
v
u
e
l
v
e

e
l

v
a
l
o
r
1

s
i
n

c
e
r
o
s

a

l
a

i
&
q
u
i
e
r
d
a
F


6
u
e
s
t
r
a

F

s
i

e
s

F
1

c
o
n

c
e
r
o
s

a
l

p
r
i
n
c
i
p
i
o
]


6
u
e
s
t
r
a

]

a

l
a

i
&
q
u
i
e
r
d
a

d
e
l

v
a
l
o
r
B


6
u
e
s
t
r
a

e
s
p
a
c
i
o
s
i

e
s

F
6
I


S
i

e
s

u
n

v
a
l
o
r

n
e
?
a
t
i
v
o
1

-

s
i
?
u
e

a
l

n
!
m
e
r
o
S


N

s
i

e
s

p
o
s
i
t
i
v
o
1

-

s
i

e
s

n
e
?
a
t
i
v
o
7
R


S
i

e
s

n
e
?
a
t
i
v
o

s
e

m
u
e
s
t
r
a

e
n
t
r
e

^

_
<


5
a
r
@
c
t
e
r

d
e
c
i
m
a
l

e
n

l
a

p
o
s
i
c
i

n

d
e

<
6
@
s

m
@
s
c
a
r
a
s
=
;


5
a
r
@
c
t
e
r

d
e

m
i
l
e
s

e
n

l
a

p
o
s
i
c
i

n

d
e

;

5


<
e
v
u
e
l
v
e

e
l

s
*
m
"
o
l
o

I
S
/

d
e
l

t
e
r
r
i
t
o
r
i
o

L


<
e
v
u
e
l
v
e

e
l

s
*
m
"
o
l
o

d
e

l
a

m
o
n
e
d
a

1


<
e
v
u
e
l
v
e

l
a

c
o
m
a

e
n

e
s
a

p
o
s
i
c
i

n

.


<
e
v
u
e
l
v
e

e
l

p
u
n
t
o

e
n

e
s
a

p
o
s
i
c
i

n

%


<
e
v
u
e
l
v
e

e
l

v
a
l
o
r

m
u
l
t
i
p
l
i
c
a
d
o

p
o
r

+
F
n
1

d
o
n
d
e

n

e
s

e
l

n
!
m
e
r
o

d
e

n
u
e
v
e
s

d
e
s
p
u
X
s

d
e

l
a

U
%
U

E
E
E
E


<
e
v
u
e
l
v
e

e
l

v
a
l
o
r

u
s
a
n
d
o

n
o
t
a
c
i

n

c
i
e
n
t
*
f
i
c
a

R
$


<
e
v
u
e
l
v
e

e
l

v
a
l
o
r

e
n

n
!
m
e
r
o
s

r
o
m
a
n
o
s

:
6


<
e
v
u
e
l
v
e

e
l

v
a
l
o
r

a
l
i
n
e
a
d
o

a

l
a

i
&
q
u
i
e
r
d
a
.

T
O
D
N
U
*
)
E
R

,
c
a
d

.
1

U
f
o
r
m
a
t
o
U
0
3
5
o
n
v
i
e
r
t
e

U
c
a
d
U

a

t
i
p
o

$
#
6
B
E
R

c
o
n

e
l

f
o
r
m
a
t
o

e
s
p
e
c
i
f
i
c
a
d
o
.

$
o

p
u
e
d
e

h
a
"
e
r

e
s
p
a
c
i
o
s

e
n
t
r
e

n
!
m
e
r
o
s

n
i

o
t
r
o
s

c
a
r
a
c
t
e
r
e
s
1

e
x
c
e
p
t
o

e
l

c
a
r
@
c
t
e
r

d
e
c
i
m
a
l

o

e
l

s
i
?
n
o

m
e
n
o
s

a

l
a

i
&
q
u
i
e
r
d
a
.

S
E
L
E
5
'

'
/
-
$
#
6
B
E
R

,
U
+
2
I
1
Q
Q
U
1

U
Q
Q
Q
d
Q
Q
U
3

:
R
/
6

<
#
(
L
+
2
I
1
Q
Q
.

T
O
D
D
A
T
E

,
c
a
d
1

U
f
o
r
m
a
t
o
U
3
5
o
n
v
i
e
r
t
e

U
c
a
d
U

d
e

t
i
p
o

%
(
R
5
H
(
R
2

o

5
H
(
R
1

a

u
n

v
a
l
o
r

d
e

t
i
p
o

<
(
'
E

c
o
n

e
l

f
o
r
m
a
t
o

e
s
p
e
c
i
f
i
c
a
d
o
.

S
E
L
E
5
'

'
/
-
<
(
'
E

,
U
F
+
F
+
2
F
F
+
U
1

U
<
<
Y
6
6
Y
8
8
8
8
U
3

F
+
Y
F
+
Y
2
F
F
+
#
u
n
c
i
o
n
e
s

e

i
n
s
t
r
u
c
c
i
o
n
e
s

%
e

$
%
m
i
n
i
s
t
r
$
c
i

n

%
e

O
r
$
c
l
e
.

C
R
E
A
T
E

U
S
E
R

u
s
u
+


I
<
E
$
'
I
:
I
E
<

B
8

p
a
s
s
C
o
r
d


E
D
E
#
A
U
L
T

T
A
)
L
E
S
"
A
C
E

t
$
&
l
e
s
p
$
c
e
F



E
T
E
*
"
O
R
A
R
+

T
A
)
L
E
S
"
A
C
E

t
$
&
l
e
s
p
$
c
e
F


E
A
U
O
T
A

G
e
n
t
e
r
o

G
5
C
*
H

C

U
N
L
I
*
I
T
E
D
H


O
N

t
$
&
l
e
s
p
$
c
e
F



E
"
R
O
#
I
L
E

p
e
r
f
i
l
F
4



5
r
e
a
c
i

n

d
e
l

u
s
u
a
r
i
o

#
S
#
+

c
o
n

c
o
n
t
r
a
s
e
)
a

d
e

a
c
c
e
s
o

7
(
S
S
T
/
R
<
.
'
(
B
L
E
S
7
(
5
E
s

p
o
r

d
e
f
e
c
t
o

y

t
e
m
p
o
r
a
l
.
'
a
m
a
)
o

d
e

c
a
d
a

t
a
"
l
e
s
p
a
c
e

e
n

9
"
y
t
e
s

o

6
"
y
t
e
s
.

7
u
e
d
e

s
e
r

i
l
i
m
i
t
a
d
o
.
(
s
i
?
n
a
c
i

n

d
e

u
n

p
e
r
f
i
l

p
a
r
a

#
S
#
+
.
.

5
R
E
(
'
E

#
S
E
R

j
o
s
u

I
<
E
$
'
I
:
I
E
<

B
8

P
o
s
u


<
E
:
(
#
L
'

'
(
B
L
E
S
7
(
5
E

t
r
a
"
a
j
o

>
#
/
'
(

D
D
F
9

/
$

t
r
a
"
a
j
o


'
E
6
7
/
R
(
R
8

'
(
B
L
E
S
7
(
5
E

t
r
a
"
a
j
o

4
.
5
R
E
(
'
E

#
S
E
R

j
o
s
e

I
<
I
<
E
$
'
I
:
I
E
<

B
8

P
o
s
e

>
#
/
'
(

+
6

/
$

#
S
E
R
S

4
.

A
L
T
E
R

U
S
E
R

u
s
u
+


I
<
E
$
'
I
:
I
E
<

B
8

p
a
s
s
C
o
r
d


E
D
E
#
A
U
L
T

T
A
)
L
E
S
"
A
C
E

t
$
&
l
e
s
p
$
c
e
F



E
T
E
*
"
O
R
A
R
+

T
A
)
L
E
S
"
A
C
E

t
$
&
l
e
s
p
$
c
e
F


E
A
U
O
T
A

G
e
n
t
e
r
o

G
5
C
*
H

C

U
N
L
I
*
I
T
E
D
H


O
N

t
$
&
l
e
s
p
$
c
e
F



E
"
R
O
#
I
L
E

p
e
r
f
i
l
F
4
6
o
d
i
f
i
c
a
c
i

n

d
e

l
a

d
e
f
i
n
i
c
i

n

d
e
l

u
s
u
a
r
i
o

#
S
#
+
.
.
(
L
'
E
R

#
S
E
R

u
s
u
a
r
i
o
+


I
<
E
$
'
I
:
I
E
<

B
8

n
u
e
v
a
c
l
a
v
e

4
.
(
L
'
E
R

#
S
E
R

u
s
u
a
r
i
o
+


7
R
/
:
I
L
E

n
u
e
v
o
p
e
r
f
i
l

4
.

D
R
O
"

U
S
E
R

u
s
u
+

.
5
(
S
5
(
<
E
0
E
l
i
m
i
n
a
c
i

n

d
e
l

u
s
u
a
r
i
o

#
S
#
+
.
L
a

o
p
c
i

n

5
(
S
5
(
<
E

s
u
p
r
i
m
e

t
o
d
o
s

l
o
s

o
"
j
e
t
o
s

d
e
l

u
s
u
a
r
i
o

a
n
t
e
s

d
e

"
o
r
r
a
r
l
o
.
<
R
/
7

#
S
E
R

n
o
m
"
r
e
u
s
u
a
r
i
o
.

!
R
A
N
T

G
p
r
i
(
D
o
&
j
/

E
>
p
r
i
(
D
o
&
j
I
F
.
.
.

C

A
L
L
H



E
9
c
o
l
/

E
>

c
o
l
I
F
.
.
.
;
F


O
N

E
u
s
u
a
r
i
o
.
0
o
"
j
e
t
o


'
/

`
u
s
u
a
r
i
o
+

A

r
o
l
+

A

7
#
B
L
I
5
a









.
1
`
u
s
u
a
r
i
o
2

A

r
o
l
2

A

7
#
B
L
I
5
a
.
.
.
0


E
,
I
T
-

!
R
A
N
T

O
"
T
I
O
N
F

4
(
d
j
u
d
i
c
a

p
r
i
v
i
l
e
?
i
o
s

s
o
"
r
e

o
"
j
e
t
o
s

o

c
o
l
u
m
n
a
s

d
e

o
"
j
e
t
o
s

a

u
n

u
s
u
a
r
i
o

o

r
o
l
.
7
#
B
L
I
5

a
d
j
u
d
i
c
a

l
o
s

p
r
i
v
i
l
e
?
i
o
s

a

t
o
d
o
s

l
o
s

u
s
u
a
r
i
o
s

a
c
t
u
a
l
e
s

o

f
u
t
u
r
o
s
.
T
I
'
H

;
R
(
$
'

/
7
'
I
/
$

p
e
r
m
i
t
e

q
u
e

e
l

r
e
c
e
p
t
o
r

d
e
l

p
r
i
v
i
l
e
?
i
o

o

r
o
l

s
e

l
o

a
s
i
?
n
e

a

o
t
r
o
s

u
s
u
a
r
i
o
s

o

r
o
l
e
s
.
.
;
R
(
$
'

S
E
L
E
5
'

/
$

t
a
"
l
a

'
/

u
s
u
a
r
i
o
+

4
.
;
R
(
$
'

S
E
L
E
5
'

/
$

t
a
"
l
a

'
/

n
o
m
"
r
e
-
R
/
L

4
.
;
R
(
$
'

S
E
L
E
5
'

(
$
8

'
(
B
L
E

'
/

7
#
B
L
I
5

4
.
;
R
(
$
'

S
E
L
E
5
'

/
$

t
a
"
l
a

'
/

u
s
u
a
r
i
o
+

T
I
'
H

;
R
(
$
'

/
7
'
I
/
$

4
.
;
R
(
$
'

#
7
<
(
'
E

,
c
o
l
u
m
n
a
3

/
$

t
a
"
l
a

'
/

u
s
u
a
r
i
o
+

4
.

!
R
A
N
T

G
p
r
i
(
/

C

r
o
l
/
H

E
>
G
p
r
i
(
I

C

r
o
l
I
H
>
.
.
.
F



'
/

`
u
s
u
a
r
i
o
+

A

r
o
l
+

A

7
#
B
L
I
5
a









.
1
`
u
s
u
a
r
i
o
2

A

r
o
l
2

A

7
#
B
L
I
5
a
0
.
.
.


E
,
I
T
-

A
D
*
I
N

O
"
T
I
O
N
F

4
(
d
j
u
d
i
c
a

p
r
i
v
i
l
e
?
i
o
s

d
e

s
i
s
t
e
m
a

a

u
n

u
s
u
a
r
i
o

o

r
o
l
.
7
#
B
L
I
5

a
d
j
u
d
i
c
a

l
o
s

p
r
i
v
i
l
e
?
i
o
s

a

t
o
d
o
s

l
o
s

u
s
u
a
r
i
o
s

a
c
t
u
a
l
e
s

o

f
u
t
u
r
o
s
.
T
I
'
H

(
<
6
I
$

/
7
'
I
/
$

p
e
r
m
i
t
e

q
u
e

e
l

r
e
c
e
p
t
o
r

d
e
l

p
r
i
v
i
l
e
?
i
o

o

r
o
l

p
u
e
d
a

a
s
i
?
n
a
r

e
s
o
s

m
i
s
m
o
s

p
r
i
v
i
l
e
?
i
o
s

d
e

a
d
m
i
n
i
s
t
r
a
d
o
r

a

o
t
r
o
s

u
s
u
a
r
i
o
s

o

r
o
l
e
s
.
.
;
R
(
$
'

5
R
E
(
'
E

S
E
S
S
I
/
$

'
/

u
s
u
a
r
i
o
+

4
.
;
R
(
$
'

5
R
E
(
'
E

S
E
S
S
I
/
$

'
/

u
s
u
a
r
i
o
+

T
I
'
H

(
<
6
I
$

/
7
'
I
/
$

4
.
;
R
(
$
'

5
R
E
(
'
E

S
E
S
S
I
/
$

'
/

n
o
m
"
r
e
-
R
/
L

4
.
;
R
(
$
'

n
o
m
"
r
e
-
R
/
L

'
/

u
s
u
a
r
i
o
+

4
.

R
E

O
5
E

G
p
r
i
(
D
o
&
j
/

E
>
p
r
i
(
D
o
&
j
I
F
.
.
.
C

A
L
L
F
a



O
N

E
u
s
u
a
r
i
o
.
0
o
"
j
e
t
o


:
R
/
6

`
u
s
u
a
r
i
o
+

A

r
o
l
+

A

7
#
B
L
I
5
a









.
1
`
u
s
u
a
r
i
o
2

A

r
o
l
2

A

7
#
B
L
I
5
a
0
.
.
.
4
R
e
t
i
r
a

p
r
i
v
i
l
e
?
i
o
s

s
o
"
r
e

o
"
j
e
t
o
s

o

c
o
l
u
m
n
a
s

d
e

o
"
j
e
t
o
s

a

u
n

u
s
u
a
r
i
o

o

r
o
l
.
7
#
B
L
I
5

r
e
t
i
r
a

l
o
s

p
r
i
v
i
l
e
?
i
o
s

a

t
o
d
o
s

l
o
s

u
s
u
a
r
i
o
s

a
c
t
u
a
l
e
s

o

f
u
t
u
r
o
s
.
.

R
E
%
/
9
E

I
$
S
E
R
'

/
$

t
a
"
l
a

:
R
/
6

n
o
m
"
r
e
-
R
/
L
Y
u
s
u
a
r
i
o

=
.

R
E

O
5
E

G
p
r
i
(
/

C

r
o
l
/
H

E
>
G
p
r
i
(
I

C

r
o
l
I
H
F
.
.
.



:
R
/
6

`
u
s
u
a
r
i
o
+

A

r
o
l
+

A

7
#
B
L
I
5
a









.
1
`
u
s
u
a
r
i
o
2

A

r
o
l
2

A

7
#
B
L
I
5
a
0
.
.
.
4
R
e
t
i
r
a

p
r
i
v
i
l
e
?
i
o
s

d
e

s
i
s
t
e
m
a

a

u
n

u
s
u
a
r
i
o

o

r
o
l
.
7
#
B
L
I
5

r
e
t
i
r
a

l
o
s

p
r
i
v
i
l
e
?
i
o
s

a

t
o
d
o
s

l
o
s

u
s
u
a
r
i
o
s

a
c
t
u
a
l
e
s

o

f
u
t
u
r
o
s
.
.
R
E
%
/
9
E

5
R
E
(
'
E

S
E
S
S
I
/
$

:
R
/
6

n
o
m
"
r
e
-
R
/
L

4
.
R
E
%
/
9
E

n
o
m
"
r
e
-
R
/
L

:
R
/
6

u
s
u
a
r
i
o

4
.

C
R
E
A
T
E

R
O
L
E

r
o
l


.
I
<
E
$
'
I
:
I
E
<

B
8

p
a
s
s
C
o
r
d
0
4
5
r
e
a

e
l

r
o
l

R
/
L

c
o
n
1

o
p
c
i
o
n
a
l
m
e
n
t
e
1

c
o
n
t
r
a
s
e
)
a

7
(
S
S
T
/
R
<
.

(

e
s
t
e

r
o
l

h
a
"
r
@

q
u
e

a
d
j
u
d
i
c
a
r
l
e

p
r
i
v
i
l
e
?
i
o
s

c
o
n

l
a

i
n
s
t
r
u
c
c
i

n

;
R
(
$
'
.

D
R
O
"

R
O
L
E

r
o
l
4
E
l
i
m
i
n
a

e
l

r
o
l

R
/
L
.
.

A
L
T
E
R

U
S
E
R

u
s
u
+


D
E
#
A
U
L
T

R
/
L
E

r
o
l
4
(
d
j
u
d
i
c
a
c
i

n

d
e

u
n

r
o
l

p
o
r

d
e
f
e
c
t
o

a
l

u
s
u
a
r
i
o

#
S
#
+
.

C
R
E
A
T
E

"
R
O
#
I
L
E

p
e
r
f
i
l
+

L
I
*
I
T


`
S
E
S
S
I
/
$
S
-
7
E
R

#
S
E
R

A


5
7
#
-
7
E
R
-
S
E
S
S
I
/
$

A



5
7
#
-
7
E
R
-
5
(
L
L

A

5
/
$
$
E
5
'
-
'
I
6
E

A


I
<
L
E
-
'
I
6
E

A



L
/
;
I
5
(
L
-
R
E
(
<
S
-
7
E
R
-
S
E
S
S
I
/
$

A


L
/
;
I
5
(
L
-
R
E
(
<
S
-
7
E
R
-
5
(
L
L

A




7
R
I
%
(
'
E
-
S
;
(

A

5
/
6
7
/
S
I
'
E
-
L
I
6
I
'

a


`
E
n
t
e
r
o

`
9

A

6
a

A

#
$
L
I
6
I
'
E
<

A

<
E
:
(
#
L
'
a


.


`
S
E
S
S
I
/
$
S
-
7
E
R

#
S
E
R

A


5
7
#
-
7
E
R
-
S
E
S
S
I
/
$

A



5
7
#
-
7
E
R
-
5
(
L
L

A

5
/
$
$
E
5
'
-
'
I
6
E

A


I
<
L
E
-
'
I
6
E

A



L
/
;
I
5
(
L
-
R
E
(
<
S
-
7
E
R
-
S
E
S
S
I
/
$

A


L
/
;
I
5
(
L
-
R
E
(
<
S
-
7
E
R
-
5
(
L
L

A




7
R
I
%
(
'
E
-
S
;
(

A

5
/
6
7
/
S
I
'
E
-
L
I
6
I
'

a


`
E
n
t
e
r
o

`
9

A

6
a

A

#
$
L
I
6
I
'
E
<

A

<
E
:
(
#
L
'
a


0
O


4
5
r
e
a
c
i

n

d
e
l

p
e
r
f
i
l

7
E
R
:
I
L
+

c
o
n

l
a
s

l
i
m
i
t
a
c
i
o
n
e
s

i
n
d
i
c
a
d
a
s
.

.
5
R
E
(
'
E

7
R
/
:
I
L
E

n
o
m
"
r
e
-
p
e
r
f
i
l

L
I
6
I
'

S
E
S
S
I
/
$
S
-
7
E
R
-
#
S
E
R

+

4
.
5
R
E
(
'
E

7
R
/
:
I
L
E

n
o
m
"
r
e
-
p
e
r
f
i
l

L
I
6
I
'

5
/
$
$
E
5
'
-
'
I
6
E

D

4
.
5
R
E
(
'
E

7
R
/
:
I
L
E

n
o
m
"
r
e
-
p
e
r
f
i
l

L
I
6
I
'

:
(
I
L
E
<
-
L
/
;
I
$
-
(
'
'
E
6
7
'
S

I

4
.
(
L
'
E
R

#
S
E
R

u
s
u
a
r
i
o

(
5
5
/
#
$
'

#
$
L
/
5
9

4
.

D
R
O
"

"
R
O
#
I
L
E

p
e
r
f
i
l
+

.
5
(
S
5
(
<
E
0
4
B
o
r
r
a

e
l

p
e
r
f
i
l

7
E
R
:
I
L
+
.
5
(
S
5
(
<
E

"
o
r
r
a
r
@

l
o
s

u
s
u
a
r
i
o
s

c
o
n

e
s
e

p
e
r
f
i
l
.

C
R
E
A
T
E

T
A
)
L
E
S
"
A
C
E

t
a
"
l
e
s
p
a
c
e
+


D
A
T
A
#
I
L
E

J
a
r
c
h
+
L

.
S
I
W
E

e
n
t
e
r
o

.
9
A
6
0





























.
R
E
#
S
E
0


















.
1
J
a
r
c
h
2
L

.
S
I
W
E

e
n
t
e
r
o

.
9
A
6
0





























.
R
E
#
S
E
0
O


.
<
E
:
(
#
L
'

S
'
/
R
(
;
E


,


I
$
I
'
I
(
L

t
a
m
a
)
o


$
E
V
'

t
a
m
a
)
o


6
I
$
E
V
'
E
$
'
S

t
a
m
a
)
o


6
E
V
E
V
'
E
$
'
S

t
a
m
a
)
o


7
5
'
I
$
5
R
E
(
S
E

v
a
l
o
r


3
0



.
/
$
L
I
$
E

A

/
:
L
I
$
E
0

4
5
r
e
a
c
i

n

d
e
l

t
a
"
l
e
s
p
a
c
e

'
(
B
L
E
S
7
(
5
E
+
.
5
R
E
(
'
E

'
(
B
L
E
S
7
(
5
E

n
o
m
"
r
e

<
(
'
(
:
I
L
E

U
n
o
m
"
r
e
.
o
r
a
U

S
I
W
E

D
6

4
.
5
R
E
(
'
E

'
(
B
L
E
S
7
(
5
E

n
o
m
"
r
e

<
(
'
(
:
I
L
E

U
n
o
m
"
r
e
.
o
r
a
U

S
I
W
E

+
6

(
#
'
/
E
V
'
E
$
<

/
$

$
E
V
'

D
+
2
9

6
(
V
S
I
W
E

#
$
L
I
6
I
'
E
<

4
.

A
L
T
E
R

T
A
)
L
E
S
"
A
C
E

t
a
"
l
e
s
p
a
c
e
+



`

.
A
D
D

D
A
T
A
#
I
L
E

J
a
r
c
h
+
L



.
S
I
W
E

e
n
t
e
r
o

.
9
A
6
0

.
R
E
#
S
E
0






.
(
#
'
/
E
V
'
E
$
<

/
$

A

/
:
:
0


.
1
J
a
r
c
h
2
L

.
S
I
W
E

e
n
t
e
r
o

.
9
A
6
0

.
R
E
#
S
E
0






.
(
#
'
/
E
V
'
E
$
<

/
$

A

/
:
:
0
O


0


.
R
E
$
(
6
E

<
(
'
(
:
I
L
E

J
a
r
c
h
+
L

.
1
L
a
r
c
h
2
L
0
O






'
/

J
a
r
c
h
i
+
L

.
J
a
r
c
h
i
2
L
0
O

0


.
<
E
:
(
#
L
'

S
'
/
R
(
;
E


c
l
a
u
s
(
l
m
a
c
e
n
a
m
t
o
0


.
/
$
L
I
$
E

A

/
:
:
L
I
$
E
0

a

4
6
o
d
i
f
i
c
a
c
i

n

d
e

l
a

t
a
"
l
e
s
p
a
c
e
.
(
L
'
E
R

'
(
B
L
E
S
7
(
5
E

n
o
m
"
r
e

(
<
<

<
(
'
(
:
I
L
E

U
n
o
m
"
r
e
U

S
I
W
E

D
6

4
(
L
'
E
R

'
(
B
L
E
S
7
(
5
E

n
o
m
"
r
e

(
#
'
/
E
V
'
E
$
<

/
$

$
E
V
'

+
6

6
(
V
S
I
W
E


#
$
L
I
6
I
'
E
<

4
(
L
'
E
R

'
(
B
L
E
S
7
(
5
E

n
o
m
"
r
e

/
:
:
L
I
$
E

4
(
L
'
E
R

'
(
B
L
E
S
7
(
5
E

n
o
m
"
r
e

/
$
L
I
$
E

4
.

D
R
O
"

T
A
)
L
E
S
"
A
C
E

t
"
a
l
e
s
p
a
c
e
+

.
I
$
5
L
#
<
I
$
;

5
/
$
'
E
$
'
S
0

4
E
l
i
m
i
n
a

e
l

t
a
"
l
e
s
p
a
c
e
.
I
$
5
L
#
<
I
$
;

5
/
$
'
E
$
'
S

p
e
r
m
i
t
e

"
o
r
r
a
r

u
n

t
a
"
l
e
s
p
a
c
e

q
u
e

t
e
n
?
a

d
a
t
o
s
.

C
R
E
A
T
E

O
R

R
E
"
L
A
C
E

"
R
O
C
E
D
U
R
E

U
n
o
m
"
r
e
U

,
v
a
r
i
a
"
l
e

$
#
6
B
E
R
3


A
S




v
a
r
+

%
(
R
5
H
(
R
2
,
+
M
3
4



v
a
r
2

%
(
R
5
H
(
R
2
,
+
M
3
4
)
E
!
I
N





S
E
L
E
5
'

c
o
l
.
+

c
o
l
2
.

I
$
'
/

v
a
r
+
1

v
a
r
2





:
R
/
6

t
a
"
l
a

T
H
E
R
E

c
o
l

G

n
u
m





<
B
6
S
-
/
#
'
7
#
'
.
7
#
'
-
L
I
$
E

,
U
t
e
x
t
+
U

A
A






v
a
r
i
a
"
l
e

A
A

U
t
e
x
t
2
U

A
A

v
a
r
+

A
A

U
t
e
x
t
I
U

A
A

v
a
r
2
3
4
E
B
C
E
"
T
I
O
N





(
q
u
i

v
a
n

l
a
s

e
x
c
e
p
c
i
o
n
e
s
E
N
D

U
n
o
m
"
r
e
U

4

Y
5
r
e
a
c
i

n

d
e

u
n

p
r
o
c
e
d
i
m
i
e
n
t
o
E
B
C
E
"
T
I
O
N
T
H
E
$

'
/
/
-
6
(
$
8
-
R
/
T
S

'
H
E
$

R
(
I
S
E
-
(
7
L
I
5
(
'
I
/
$
-
E
R
R
/
R

,
U
t
e
x
t
o
+
U
3
T
H
E
$

$
/
-
<
(
'
(
-
:
/
#
$
<

'
H
E
$

R
(
I
S
E
-
(
7
L
I
5
(
'
I
/
$
-
E
R
R
/
R

,
U
t
e
x
t
o
2
U
3
T
H
E
$

/
'
H
E
R
S
'
H
E
$

R
(
I
S
E
-
(
7
L
I
5
(
'
I
/
$
-
E
R
R
/
R

,
U
t
e
x
t
o
I
U
3
v
-
o
f
i
c
i
o

e
m
p
l
e
a
d
o
s
.
o
f
i
c
i
o
J
T
+
"
E
4
v
-
a
p
e
l
l
i
d
o
s

=
G

U
b
v
s
-
a
p
e
l
l
i
d
o
s
U
4
v
-
d
a
t
o
=
G
b
d
a
t
o

C
R
E
A
T
E

O
R

R
E
"
L
A
C
E

#
U
N
C
T
I
O
N

U
n
o
m
"
r
e
U

,
d
a
t
o
+

$
#
6
B
E
R
1

d
a
t
o
2

$
#
6
B
E
R
3
R
E
T
U
R
N

R
E
(
L


A
S




v
a
r

$
#
6
B
E
R
,
2
3
4
)
E
!
I
N





v
a
r

=
G

d
a
t
o
+

N

d
a
t
o
2
4




R
E
T
U
R
N

v
a
r
4
E
B
C
E
"
T
I
O
N





(
q
u
i

v
a
n

l
a
s

e
x
c
e
p
c
i
o
n
e
s
4
E
N
D

U
n
o
m
"
r
e
U

4

Y
5
r
e
a
c
i

n

d
e

u
n
a

f
u
n
c
i

n
(

e
s
t
a

f
u
n
c
i

n

s
e

l
l
a
m
a
r
*
a

c
o
n

u
n

p
r
o
c
e
d
i
m
i
e
n
t
o

q
u
e

l
l
a
m
a

a

l
a

f
u
n
c
i

n
1

e
j
e
m
p
l
o
=
E
B
E
C
U
T
E

D
)
*
S
D
O
U
T
"
U
T
.
"
U
T
D
L
I
N
E

9
s
u
m
a

,
+
F
1
2
F
3
3
K
L
l
$
m
$
%
$

$

l
$

f
u
n
c
i

n

c
o
n

o
t
r
o

p
r
o
=
r
$
m
$

9
e
n
t
o
r
n
o

=
r
<
f
i
c
o
;
)
E
!
I
N

D
)
*
S
D
O
U
T
"
U
T
.
"
U
T
D
L
I
N
E

9
s
u
m
a

,
+
F
1
2
F
3
3
K

E
N
D
K
L
D
E
C
L
A
R
E



a
q
u
*

d
e
c
l
a
r
o

l
a
s

v
a
r
i
a
"
l
e
s
1

c
o
n
s
t
a
n
t
e
s

e
t
c
.

,
o
p
c
i
o
n
a
l
3
)
E
!
I
N


c
o
n
j
u
n
t
o

d
e

i
n
s
t
r
u
c
c
i
o
n
e
s

a

e
j
e
c
u
t
a
r
E
B
C
E
"
T
I
O
N





(
q
u
*

v
a
n

l
a
s

e
x
c
e
p
c
i
o
n
e
s

,
o
p
c
i
o
n
a
l
3
E
N
D


4

E
s
t
r
u
c
t
u
r
a

"
l
o
q
u
e

7
L
Y
S
>
L

I
#
^
c
o
n
d
i
c
i

n
_

T
-
E
N
i
n
s
t
r
u
c
c
i
o
n
e
s
;
E
L
S
I
F

<
c
o
n
d
i
c
i
o
n
2
>

T
H
E
N
i
n
s
t
r
u
c
c
i
o
n
e
s
;
E
L
S
I
F

<
c
o
n
d
i
c
i
o
n
3
>

T
H
E
N
i
n
s
t
r
u
c
c
i
o
n
e
s
;

.
.
E
L
S
E
i
n
s
t
r
u
c
c
i
o
n
e
s
;
E
N
D

I
#
K
(
l
t
e
r
n
a
t
i
v
a

m
!
l
t
i
p
l
e

I
:

E
L
S
I
:

I
#
^
c
o
n
d
i
c
i

n
_

T
-
E
N
i
n
s
t
r
u
c
c
i
o
n
e
s
;
E
N
D

I
#
K
I
#
^
c
o
n
d
i
c
i

n
_

T
-
E
N
i
n
s
t
r
u
c
c
i
o
n
e
s
;
E
L
S
E
E
N
D

I
#
K
(
l
t
e
r
n
a
t
i
v
a

s
i
m
p
l
e

I
:
(
l
t
e
r
n
a
t
i
v
a

d
o
"
l
e

I
:


E
L
S
E
,
-
I
L
E

^
c
o
n
d
i
c
i

n
_
L
O
O
P
i
n
s
t
r
u
c
c
i
o
n
e
s
;
E
N
D

L
O
O
"
K
E
s
t
r
u
c
t
u
r
a

r
e
p
e
t
i
t
i
v
a

T
H
I
L
E
C
A
S
E

E
2
e
M
p
r
e
s
i

n
3
F
W
H
E
N

<
t
e
s
t
1
>

T
H
E
N
<
i
n
s
t
r
u
c
c
i
o
n
e
s
1
>
;
W
H
E
N

<
t
e
s
t
2
>

T
H
E
N
<
i
n
s
t
r
u
c
c
i
o
n
e
s
2
>
;
W
H
E
N

<
t
e
s
t
3
>

T
H
E
N
<
i
n
s
t
r
u
c
c
i
o
n
e
s
3
>
;
[
E
L
S
E

<
o
t
r
a
s
-
i
n
s
t
r
u
c
c
i
o
n
e
s
>
;
]
E
N
D

C
A
S
E
K
(
l
t
e
r
n
a
t
i
v
a

m
!
l
t
i
p
l
e

c
o
n

5
(
S
E
,
d
e

c
o
m
p
r
o
"
a
c
i

n
3
#
O
R

^
v
a
r
i
a
"
l
e
c
o
n
t
r
o
l
_

I
N

2
i
n
i
c
i
o
_
.
.
.
^
f
i
n
a
l
_
L
O
O
P






i
n
s
t
r
u
c
c
i
o
n
e
s
;
E
N
D

L
O
O
P
;
#
O
R

^
v
a
r
i
a
"
l
e
c
o
n
t
r
o
l
_

I
N

R
E

E
R
S
E

2
i
n
i
c
i
o
_
.
.
.
^
f
i
n
a
l
_
L
O
O
P






i
n
s
t
r
u
c
c
i
o
n
e
s
;
E
N
D

L
O
O
P
;
E
s
t
r
u
c
t
u
r
a

:
/
R

E
s
t
r
u
c
t
u
r
a

:
/
R

e
n

i
n
c
r
e
m
e
n
t
o
s

n
e
?
a
t
i
v
o
s
C
A
S
E
W
H
E
N

<
c
o
n
d
i
c
i
o
n
1
>

T
H
E
N
<
i
n
s
t
r
u
c
c
i
o
n
e
s
1
>
;
W
H
E
N

<
c
o
n
d
i
c
i
o
n
2
>

T
H
E
N
<
i
n
s
t
r
u
c
c
i
o
n
e
s
2
>
;
W
H
E
N

<
c
o
n
d
i
c
i
o
n
3
>

T
H
E
N
<
i
n
s
t
r
u
c
c
i
o
n
e
s
3
>
;
[
E
L
S
E

<
o
t
r
a
s
-
i
n
s
t
r
u
c
c
i
o
n
e
s
>
;
]
E
N
D

C
A
S
E
K
(
l
t
e
r
n
a
t
i
v
a

m
!
l
t
i
p
l
e

c
o
n

5
(
S
E
,
d
e

"
u
s
q
u
e
d
a
3


Funciones Aritmticas
Valores simples:num, vble, col
ABS(n) - Valor absoluto de n
CEIL(n) -Ste valor entero !" a n
FL##$(n) -Ste valor entero %" a n
&#'(m,n) -$esto de m entre n
(VL(valor, e)*r) -Susti valor nulo *or otro
+#,E$(m, e)*)
-+otencia de un num
$#-('(num, .,m/
-$edondea num con m decimales0
Si es -, redondea *arte entera
$#-(' (10234,1)"1,35 $#-(' (10234,1)"1,35
$#-(' (14202,-1)"1265 $#-(' (141,-7)"1665
SI8((valor)
-'evuelv el sino de valor
S9$:(n)
-$ai; de n
:$-(C(num, .,m/
-:runca num < lo de=a con m
decimales0 Si m > trunca *or i;?
de decimal
:$-(C (1023@,7)"1023
:$-(C (1AB02,-7)"166
Grupos de valores:Actuan sobre un ru*o de Cilas *ara obtener el valor0 Inoran (-LLS
AV8 (n) -&edia de DnE0
C#-(: ( F G e)*r)
-Cuenta nH veces ?ue Ia< (#
(-LLS, ed, Ia< datos
-C#-(: (F) Cuenta nH de Cilas
- C#-(: (comision) nH de comisiones no nulas
&AJ (e)*r) -&K)imo valor de la e)*r
&I( (e)*r) -&inimo valor de la e)*r
S-& (e)*r) -Suma valores de 1 col
'IS:I(C:
VA$IA(CE(Valor)
-Varian;a de c=to de valores
De listas: :raba=an sobre un ru*o de columnas dentro de la misma Cila
8$EA:ES:(v1,v700)
- ! valor de la lista
- 8$EA:ES: (nota1, nota7, nota@)
LEAS:(v1,v7, v@000)
- % valor de la lista
LEAS: (LBenitoM, LNulioM, LAndresM) " LAndresM
Funciones de cadenas de caracteres
Funciones ?ue devuelven valores carcter
CO$ (n) -'a carKcter de un ASCII - CO$(32) " LAM
C#(CA:(cad1,cad7)
--ne 7 cadenas de caracteres0 Si
?uiero unir mKs cadenas, anido concats
- C#(CA: (LEl a*ellido es L, A+ELLI'#)0 #+E$ GG
- C#(CA:(C#(CA:(a*ellido, LesM), oCicio)
select a*ellido GG LesM GG oCicio Crom em*le
-++E$ (cad) - Convierte cad a ma<Psc
L#,E$ (cad)
Convierte cad a minPscul
I(I:CA+(cad)
-1Qletra de cada *alabra
ma<Psculas0 $esto a minus
L+A'(cd1,n,.,cad7/
- $ellena la cadena cd1 con cad7 a
la i;? o dcIa de=ando en total n
caract
L+A' (LIolaM,16,M0-L) " 0-0-0-Iola0 Si se su*rime cad7
$+A'(cd1,n,.,cad7/
$+A' (La*ellido,A,MFL) " 'i;FFFFF se rellena a
blancos
L:$I&(cad .,set)
-#mite la cadena set desde la i;?
o dcIa0Si omite set < Ia< blancos,
se omiten0 (o *alabras0
L:$I& ($:$I&(titulo, L0EM), L D L) Crom miste)tos
9uita de la decIa el *unto < comilla < de la i;?, la
comilla
$:$I&(cad .,set)
$E+LACE(cad,cbus,
.cadsust/)
-Sustitu<e en cad, cbus
*or cadbus0 Si se omie cadbus, lo
sustitu<e *or nada Busca cadenas
enteras < reem*la;a *or cadsust0
:ranslate busca caracteres *or
*osiciRn
- $E+LACE (L#8$#M, L#M, LASM) AS8$AS
- :$A(SLA:E (L#8$#M, L#M, LASM) A8$A
- $E+LACE (L#8$#(M, L#(M, LASM) #8$AS
-:$A(SLA:E (L#8$#(M, L#(M, LASM) A8$AS
S-BS:$(Cad,m.,n/
-A *artir de m, da n caracteres
de cad0 n!1 < m S R -
:$A(SLA:E(cad15cad75
cad@)
- Sustitu<e en cad1, los caract de
cad7 *or los de cad@ sePn su
*osiciRn
:$A(SLA:E (LS9L+L-SM, LS9LM, L17@M) " 17@+@-1
S#-('EJ(cad)
Funciones ?ue devuelven valores numricos
ASCII (cad) -'a ASCII del 1er carKcter de cad - ASCII(LAM) " 32
I(S:$(cad1,cad7 .,com
., m//)
-'a la *osiciRn de la m-sima
ocurrenc de cad7 en cad1
em*e;ando *or com
- I(S:$ (LAbracadabra L, LbraM, 7, 7) " T
- I(S:$ (LAbracadabra L, LB$A, 7, 7) " 6
- I(S:$ (LAbracadabra L, LbraM) " 7
LE(8:O (cad) - (H caracteres de cad - Si cad ti*o cIar, la lon es la Ci=ad en el diseUo
Funciones *ara manejo de fechas. las CecIas entre comillas
SVS'A:E - 'a CecIa actual (Io<) - SELEC: SVS'A:E F$#& '-AL5
A''W&#(:OS (CecIa,
n)
-'a la CecIa incrementada en n
meses
- A''W&#(:OS (FECOAWAL:, 7)0 Si n es
neativo, resta meses a la CecIa
LAS:-'AV (CecIa)
-'a Pltimo dia del mes ? se indica
en CecIa
-LAS:W'AV(L2X7X61)"7BX7X615LAS:W'AV (FECOWAL:)
- LAS:W'AV (L2X7X66) " 7TX7X66
&#(:OSWBE:,EE(
(CecI1,CecI7)
- 'a diCerencia de meses entre
dos CecIas
- &#(:OSWBE:,EE((L2X2X7666M, L1X1X7666M)"4,1
- &#(:OSWBE:,EE((SVS'A:E,L71X17XA6M) X 17
(EJ:W'AV (CecIa,
cad)
- 'a la ste CecIa ?ue to?ue el dia
indicada en cad
- (EJ:W'AV (SVS'A:E, LdominoM) 'ara la CecIa
del ste domino
Funciones de conversin
:#WCOA$
(CecIa, Cormato)
-Convierte un date a varcIar7 en
el Cormato es*eciCicado
- :#WCOA$ (L17XeneroX64M, LmontI '', VVVVM) "
enero 17, 7664
- :#WCOA$ (SVS'A:E, L DOo< esE dd D de D montI
D de D <<<< M ) " Oo< es @ de octubre de 7664
:#WCOA$ (numero,
Cormato)
-Convierte un number a varcIar7
en el Cormato es*eciCicado
- :#WCOA$ (L17XeneroX64M, LmontI '', VVVVM) "
enero 17, 7664
- :#WCOA$ (SVS'A:E, L DOo< esE dd D de D montI
D de D <<<< M ) " Oo< es @ de octubre de 7664
:#W(-&BE$ (cadena
.,Cormato/)
:#W'A:E
(cadena, LCormatoM)
- Convierte cad de ti*o cIar o
varcIar7 a date
#tras funciones
'EC#'E (variable,
valo1, codio1, valo7,
codio7, 000, valor *or
deCecto)
- Sustitu<e un valor *or otro0 Es
como una case o como un IF
- SELEC: A+ELLI'#, 'EC#'E(-++E$(#FICI#,
L+$ESI'E(:EM, 1, LE&+LEA'#M, 7, 2)0 Saca el
a*ellido < si es *resi un 1, si es em*le un 7 < si no un
20 En ve; de 2, si *onemos oCicio, nos saldrK el
oCicio ?ue tenYa
:#W(-&BE$
- Convierte un cIar o date a
number
&ZSCA$AS 'E F#$&A:# (-&E$ICAS
<<<< AUo sin sino
<<< -ltimos @ diitos del aUo
<< -ltimos 7 diitos del aUo
< -ltimos diito del aUo
? (umero de trimestre
[[ (Pmero de semana del aUo
[ (umero de semana del mes
mm (Pmero de mes
ddd (Pmero del dia del aUo
dd (Pmero de dia del mes
d (Pmero de dia de la semana
&ASCA$AS 'E F#$&A:# 'E
CA$AC:E$ES
Vear AUo
&ontI (ombre del mes (Enero)
&on Abreviatura de tres
letras del nombre del mes
'a< (ombre del dia de la
semana (Lunes)
'< Abreviatura de tres
letras del nombre del dia
(Lun)

También podría gustarte