Diferència entre revisions de la pàgina «M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL T2»

De wikiserver
Dreceres ràpides: navegació, cerca
(Es crea la pàgina amb «1) Especifique identificadores válidos y no válidos: a) b) c) d) e) f) g) h) today last_name today’s_date Number_of_days_in_February_this_year Isleap$year #number...».)
 
 
(Hi ha 15 revisions intermèdies del mateix usuari que no es mostren)
Línia 1: Línia 1:
1) Especifique identificadores válidos y no válidos:
+
'''1.-''' Especifica identificadors vàlids i no vàlids:
a)
+
 
b)
+
:a) today                                                                   '''Válido'''
c)
+
:b) last_name                                                             '''Válido'''
d)
+
:c) today’s_date                                                         '''No Válido:''' no se permite el carácter “’”
e)
+
:d) Number_of_days_in_February_this_year                  '''No Válido:''' demasiado largo
f)
+
:e) Isleap$year                                                           '''Válido'''
g)
+
:f) #number                                                               '''No Válido:''' no puede empezar por “#”
h)
+
:g) NUMBER#                                                            '''Válido'''
today
+
:h) number1to7                                                         '''Válido'''
last_name
+
 
today’s_date
+
'''2.-''' Identifique las declaraciones e inicializaciones de variables válidas y las no válidas:
Number_of_days_in_February_this_year
+
 
Isleap$year
+
:a) number_of_copies           PLS_INTEGER;                              '''Válido'''
#number
+
:b) PRINTER_NAME               constant VARCHAR2(10);             '''No válido'''
NUMBER#
+
:c) deliver_to                        VARCHAR2(10):=Johnson;             '''No válido'''
number1to7
+
:d) by_when                          DATE:= CURRENT_DATE+1;    '''     Válido'''
2) Identifique las declaraciones e inicializaciones de variables válidas y las no válidas:
+
 
a)
+
:''La declaración '''b''' no es válida porque las variables constantes se deben inicializar durante la declaración.''
b)
+
:''La declaración '''c''' no es válida porque los literales de cadena deben aparecer entre comillas simples.''
c)
+
 
d)
+
3) Examine el siguiente bloque anónimo y seleccione la frase que sea verdadera de entre las siguientes.
number_of_copies
+
<pre>
PRINTER_NAME
+
  DECLARE
deliver_to
+
    v_fname VARCHAR2(20);
by_when
+
    v_lname VARCHAR2(15) DEFAULT 'fernandez';
PLS_INTEGER;
+
    BEGIN
constant VARCHAR2(10);
+
      DBMS_OUTPUT.PUT_LINE(v_fname ||' ' ||v_lname);
VARCHAR2(10):=Johnson;
+
    END;
DATE:= CURRENT_DATE+1;
+
</pre>
3) Examine el siguiente bloque anónimo y seleccione la frase que sea verdadera de entre
+
:*a)El bloque se ejecuta correctamente y se imprime “fernandez”.
las siguientes.
+
:*b)El bloque produce un error porque se utiliza la variable fname sin inicializarse.
DECLARE
+
:*c)El bloque se ejecuta correctamente y se imprime “null fernandez”.
v_fname VARCHAR2(20);
+
:*d)El bloque produce un error porque no se puede utilizar la palabra clave DEFAULT para inicializar una variable de tipo VARCHAR2.
v_lname VARCHAR2(15) DEFAULT 'fernandez';
+
:*e) El bloque produce un error porque no se declara la variable v_fname.
BEGIN
+
 
DBMS_OUTPUT.PUT_LINE(v_fname ||' ' ||v_lname);
+
::'''a. El bloque se ejecuta correctamente y se imprime “fernandez”.'''
 +
 
 +
4) Modifique un bloque anónimo existente y guárdelo como nuevo script.
 +
 
 +
:a) Abra el script lab_01_02_soln.sql, creado en la Práctica 1.
 +
:b) En el bloque PL/SQL, declare las siguientes variables:
 +
 
 +
1. Variable v_today del tipo DATE. Inicialice today con SYSDATE.
 +
<pre>
 +
  DECLARE
 +
    v_today DATE:=SYSDATE;
 +
</pre>
 +
2. Variable v_tomorrow del tipo today. Utilice el atributo %TYPE para declarar esta variable.
 +
<pre>
 +
  v_tomorrow v_today%TYPE;
 +
</pre>
 +
c) En la sección ejecutable:
 +
1. Inicialice la variable v_tomorrow con una expresión, que calcule la fecha de mañana (agregue uno al valor de v_today)
 +
2. Imprima el valor de v_today y v_tomorrow después de imprimir “Hello World”
 +
<pre>
 +
  BEGIN
 +
    v_tomorrow:=v_today +1;
 +
    DBMS_OUTPUT.PUT_LINE(' Hello World ');
 +
    DBMS_OUTPUT.PUT_LINE('TODAY IS : '|| v_today);
 +
    DBMS_OUTPUT.PUT_LINE('TOMORROW IS : ' || v_tomorrow);
 
END;
 
END;
a)
+
</pre>
b)
+
d) Guarde el script como lab_02_04_soln.sql y ejecute.
c)
+
 
d)
+
La salida de ejemplo es como la siguiente (los valores de v_today y v_tomorrow serán diferentes para reflejar la fecha actual de hoy y la de mañana):
El bloque se ejecuta correctamente y se imprime “fernandez”.
+
 
El bloque produce un error porque se utiliza la variable fname sin inicializarse.
+
[[Imatge:m2_uf3_sdv_1.png |300px|center| Declaració variables]]
El bloque se ejecuta correctamente y se imprime “null fernandez”.
+
 
El bloque produce un error porque no se puede utilizar la palabra clave DEFAULT
+
5) Edite el script lab_02_04_soln.sql.
para inicializar una variable de tipo VARCHAR2.
+
 
e) El bloque produce un error porque no se declara la variable v_fname.
+
a) Agregue código para crear dos variables de enlace: b_basic_percent y b_pf_percent. Ambas son del tipo NUMBER.
 +
<pre>
 +
  VARIABLE b_basic_percent NUMBER
 +
  VARIABLE b_pf_percent NUMBER
 +
</pre>
 +
b) En la sección ejecutable del bloque PL/SQL, asigne los valores 45 y 12 a b_basic_percent y b_pf_percent, respectivamente.
 +
<pre>
 +
  :b_basic_percent:=45;
 +
  :b_pf_percent:=12;
 +
</pre>
 +
c) Termine el bloque PL/SQL con “/” y muestre el valor de las variables de enlace con el comando PRINT.
 +
<pre>
 +
  /
 +
  PRINT b_basic_percent
 +
  PRINT b_pf_percent
 +
  O
 +
  PRINT
 +
</pre>
 +
d) Ejecute y guarde el script como lab_02_05_soln.sql. La salida de ejemplo es la siguiente:
 +
 
 +
[[Imatge:m2_uf3_sdv_2.png |300px|center| Declaració variables]]

Revisió de 18:00, 1 març 2018

1.- Especifica identificadors vàlids i no vàlids:

a) today                                                                   Válido
b) last_name                                                             Válido
c) today’s_date                                                         No Válido: no se permite el carácter “’”
d) Number_of_days_in_February_this_year                  No Válido: demasiado largo
e) Isleap$year                                                           Válido
f) #number                                                               No Válido: no puede empezar por “#”
g) NUMBER#                                                            Válido
h) number1to7                                                         Válido

2.- Identifique las declaraciones e inicializaciones de variables válidas y las no válidas:

a) number_of_copies           PLS_INTEGER;                              Válido
b) PRINTER_NAME               constant VARCHAR2(10);             No válido
c) deliver_to                        VARCHAR2(10):=Johnson;             No válido
d) by_when                          DATE:= CURRENT_DATE+1;         Válido
La declaración b no es válida porque las variables constantes se deben inicializar durante la declaración.
La declaración c no es válida porque los literales de cadena deben aparecer entre comillas simples.

3) Examine el siguiente bloque anónimo y seleccione la frase que sea verdadera de entre las siguientes.

   DECLARE
     v_fname VARCHAR2(20);
     v_lname VARCHAR2(15) DEFAULT 'fernandez';
     BEGIN
       DBMS_OUTPUT.PUT_LINE(v_fname ||' ' ||v_lname);
     END;
  • a)El bloque se ejecuta correctamente y se imprime “fernandez”.
  • b)El bloque produce un error porque se utiliza la variable fname sin inicializarse.
  • c)El bloque se ejecuta correctamente y se imprime “null fernandez”.
  • d)El bloque produce un error porque no se puede utilizar la palabra clave DEFAULT para inicializar una variable de tipo VARCHAR2.
  • e) El bloque produce un error porque no se declara la variable v_fname.
a. El bloque se ejecuta correctamente y se imprime “fernandez”.

4) Modifique un bloque anónimo existente y guárdelo como nuevo script.

a) Abra el script lab_01_02_soln.sql, creado en la Práctica 1.
b) En el bloque PL/SQL, declare las siguientes variables:

1. Variable v_today del tipo DATE. Inicialice today con SYSDATE.

   DECLARE
     v_today DATE:=SYSDATE;

2. Variable v_tomorrow del tipo today. Utilice el atributo %TYPE para declarar esta variable.

   v_tomorrow v_today%TYPE;

c) En la sección ejecutable: 1. Inicialice la variable v_tomorrow con una expresión, que calcule la fecha de mañana (agregue uno al valor de v_today) 2. Imprima el valor de v_today y v_tomorrow después de imprimir “Hello World”

   BEGIN
     v_tomorrow:=v_today +1;
     DBMS_OUTPUT.PUT_LINE(' Hello World ');
     DBMS_OUTPUT.PUT_LINE('TODAY IS : '|| v_today);
     DBMS_OUTPUT.PUT_LINE('TOMORROW IS : ' || v_tomorrow);
END;

d) Guarde el script como lab_02_04_soln.sql y ejecute.

La salida de ejemplo es como la siguiente (los valores de v_today y v_tomorrow serán diferentes para reflejar la fecha actual de hoy y la de mañana):

Declaració variables

5) Edite el script lab_02_04_soln.sql.

a) Agregue código para crear dos variables de enlace: b_basic_percent y b_pf_percent. Ambas son del tipo NUMBER.

   VARIABLE b_basic_percent NUMBER
   VARIABLE b_pf_percent NUMBER

b) En la sección ejecutable del bloque PL/SQL, asigne los valores 45 y 12 a b_basic_percent y b_pf_percent, respectivamente.

   :b_basic_percent:=45;
   :b_pf_percent:=12;

c) Termine el bloque PL/SQL con “/” y muestre el valor de las variables de enlace con el comando PRINT.

   /
   PRINT b_basic_percent
   PRINT b_pf_percent
   O
   PRINT

d) Ejecute y guarde el script como lab_02_05_soln.sql. La salida de ejemplo es la siguiente:

Declaració variables