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
Línia 19: Línia 19:
 
:''La declaración '''b''' no es válida porque las variables constantes se deben inicializar durante la declaración.''
 
:''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.''
 
:''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.
 +
<pre>
 +
  DECLARE
 +
    v_fname VARCHAR2(20);
 +
    v_lname VARCHAR2(15) DEFAULT 'fernandez';
 +
    BEGIN
 +
      DBMS_OUTPUT.PUT_LINE(v_fname ||' ' ||v_lname);
 +
    END;
 +
</pre>
 +
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.
 +
<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;
 +
</pre>
 +
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):

Revisió del 10:20, 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):