Diferència entre revisions de la pàgina «P3-Escritura de Sentencias Ejecutables»

De wikiserver
Dreceres ràpides: navegació, cerca
 
(Hi ha 3 revisions intermèdies del mateix usuari que no es mostren)
Línia 1: Línia 1:
 
'''1) Evalúe el bloque PL/SQL siguiente y determine tanto el tipo de dato como el valor de cada una de las siguientes variables, según las reglas de los ámbitos.'''
 
'''1) Evalúe el bloque PL/SQL siguiente y determine tanto el tipo de dato como el valor de cada una de las siguientes variables, según las reglas de los ámbitos.'''
 +
 
[[Fitxer:bloc1.png|500px|Bloque PL/SQL]]
 
[[Fitxer:bloc1.png|500px|Bloque PL/SQL]]
  
Línia 7: Línia 8:
 
       d) Valor de v_message en la posición 2:
 
       d) Valor de v_message en la posición 2:
 
       e) Valor de v_new_locn en la posición 2:
 
       e) Valor de v_new_locn en la posición 2:
 +
 +
  '''Sol.lucions'''
 +
 
 +
  a) El valor de v_weight en la posición 1 es: 2  El tipo de dato es NUMBER.
 +
  b) El valor de v_new_locn en la posición 1 es: Western Europe El tipo de dato es VARCHAR2.
 +
  c) El valor de v_weight en la posición 2 es: 601 El tipo de dato es NUMBER.
 +
  d) El valor de v_message en la posición 2 es: Product 10012 is in stock  El tipo de dato es VARCHAR2.
 +
  e) El valor de v_new_locn en la posición 2 es: No válido porque v_new_locn no es visible fuera del subbloque
  
 
'''2) En el bloque PL/SQL siguiente, determine el valor y el tipo de dato en cada uno de los siguientes casos:'''
 
'''2) En el bloque PL/SQL siguiente, determine el valor y el tipo de dato en cada uno de los siguientes casos:'''
Línia 18: Línia 27:
 
     e) Valor de v_name en el bloque principal:
 
     e) Valor de v_name en el bloque principal:
 
     f) Valor de v_credit_rating en el bloque principal:
 
     f) Valor de v_credit_rating en el bloque principal:
 +
 +
'''Sol.lucions'''
 +
 
 +
  a) El valor de v_customer en el bloque anidado es: 201  El tipo de dato es NUMBER.
 +
  b) El valor de v_name en el bloque anidado es: Unisports El tipo de dato es VARCHAR2.
 +
  c) El valor de v_credit_rating en el bloque anidado es: GOOD El tipo de dato es VARCHAR2.
 +
  d) El valor de v_customer en el bloque principal es: Womansport El tipo de dato es VARCHAR2.
 +
  e) El valor de v_name en el bloque principal es: Nulo. name no está visible en el bloque principal y aparecerá un error.
 +
  f) El valor de v_credit_rating en el bloque principal es: EXCELLENT El tipo de dato es VARCHAR2.
  
 
'''3) A continuación, edite P2_05.sql de la siguiente forma:'''
 
'''3) A continuación, edite P2_05.sql de la siguiente forma:'''
Línia 29: Línia 47:
 
     SELECT first_name, salary INTO v_fname, v_emp_sal
 
     SELECT first_name, salary INTO v_fname, v_emp_sal
 
     FROM employees WHERE employee_id=110;
 
     FROM employees WHERE employee_id=110;
   e) Cambie la línea que imprime “Hello World” para que imprima “Hello” y el nombre. A continuación, comente las líneas que muestran las fechas  
+
   e) Cambie la línea que imprime “Hello World” para que imprima “Hello” y el nombre. A continue v_credit_rating en el bloque anidado:
 +
    d) Valor ación, comente las líneas que muestran las fechas  
 
     e imprima las variables de enlace.
 
     e imprima las variables de enlace.
 
   f) Calcule la aportación del empleado al fondo de previsión (PF). PF es el 12% del salario básico, y el salario básico es el 45% del salario.  
 
   f) Calcule la aportación del empleado al fondo de previsión (PF). PF es el 12% del salario básico, y el salario básico es el 45% del salario.  
Línia 37: Línia 56:
 
     La salida de ejemploes la siguiente:
 
     La salida de ejemploes la siguiente:
 
[[Fitxer:salida1.png|300px|Salida]]
 
[[Fitxer:salida1.png|300px|Salida]]
 +
 +
  '''Sol.lució''' 
 +
 +
  -- VARIABLE b_basic_percent NUMBER
 +
  -- VARIABLE b_pf_percent NUMBER
 +
  SET SERVEROUTPUT ON
 +
    /*:b_basic_percent:=45;
 +
    :b_pf_percent:=12;*/
 +
  DECLARE
 +
    v_basic_percent NUMBER:=45;
 +
    v_pf_percent NUMBER:=12;
 +
    v_fname VARCHAR2(15);
 +
    v_emp_sal NUMBER(10);
 +
  BEGIN
 +
    SELECT first_name, salary INTO v_fname, v_emp_sal
 +
    FROM employees WHERE employee_id=110;
 +
    DBMS_OUTPUT.PUT_LINE(' Hello '|| v_fname);
 +
    /*
 +
  DBMS_OUTPUT.PUT_LINE('TODAY IS : '|| v_today);
 +
  DBMS_OUTPUT.PUT_LINE('TOMORROW IS : ' || v_tomorrow);*/
 +
    ...
 +
    ...
 +
    /
 +
  --PRINT b_basic_percent
 +
  --PRINT b_basic_percent

Revisió de 16:21, 30 gen 2015

1) Evalúe el bloque PL/SQL siguiente y determine tanto el tipo de dato como el valor de cada una de las siguientes variables, según las reglas de los ámbitos.

Bloque PL/SQL

     a) Valor de v_weight en la posición 1:
     b) Valor de v_new_locn en la posición 1:
     c) Valor de v_weight en la posición 2:
     d) Valor de v_message en la posición 2:
     e) Valor de v_new_locn en la posición 2:
  Sol.lucions
 
 a) El valor de v_weight en la posición 1 es: 2  El tipo de dato es NUMBER.
 b) El valor de v_new_locn en la posición 1 es: Western Europe El tipo de dato es VARCHAR2.
 c) El valor de v_weight en la posición 2 es: 601 El tipo de dato es NUMBER.
 d) El valor de v_message en la posición 2 es: Product 10012 is in stock  El tipo de dato es VARCHAR2.
 e) El valor de v_new_locn en la posición 2 es: No válido porque v_new_locn no es visible fuera del subbloque

2) En el bloque PL/SQL siguiente, determine el valor y el tipo de dato en cada uno de los siguientes casos:

Bloque2 PL/SQL

    a) Valor de v_customer en el bloque anidado:
    b) Valor de v_name en el bloque anidado:
    c) Valor de v_credit_rating en el bloque anidado:
    d) Valor de v_customer en el bloque principal:
    e) Valor de v_name en el bloque principal:
    f) Valor de v_credit_rating en el bloque principal:
Sol.lucions
 
 a) El valor de v_customer en el bloque anidado es: 201  El tipo de dato es NUMBER.
 b) El valor de v_name en el bloque anidado es: Unisports El tipo de dato es VARCHAR2.
 c) El valor de v_credit_rating en el bloque anidado es: GOOD El tipo de dato es VARCHAR2.
 d) El valor de v_customer en el bloque principal es: Womansport El tipo de dato es VARCHAR2.
 e) El valor de v_name en el bloque principal es: Nulo. name no está visible en el bloque principal y aparecerá un error.
 f) El valor de v_credit_rating en el bloque principal es: EXCELLENT El tipo de dato es VARCHAR2.

3) A continuación, edite P2_05.sql de la siguiente forma:

 a) Con la sintaxis de comentarios de una sola línea, comente las líneas que crean las variables de enlace y active SERVEROUTPUT.
 b) Con los comentarios de varias líneas, comente en la sección ejecutable las líneas que asignan valores a las variables de enlace.
 c) En la sección de declaraciones:
   1. Declare e inicialice dos variables temporales para sustituir las variables de enlace comentadas.
   2. Declare dos variables adicionales: v_fname del tipo VARCHAR2 y tamaño 15, y v_emp_sal del tipo NUMBER y tamaño 10.
 d) Incluya la siguiente sentencia SQL en la sección ejecutable:
    SELECT first_name, salary INTO v_fname, v_emp_sal
    FROM employees WHERE employee_id=110;
 e) Cambie la línea que imprime “Hello World” para que imprima “Hello” y el nombre. A continue v_credit_rating en el bloque anidado:
    d) Valor ación, comente las líneas que muestran las fechas 
    e imprima las variables de enlace.
 f) Calcule la aportación del empleado al fondo de previsión (PF). PF es el 12% del salario básico, y el salario básico es el 45% del salario. 
    Utilice las variables locales para el cálculo. Intente utilizar sólo una expresión para calcular el valor de PF. Imprima el salario del empleado
    y su aportación  a PF.
 g) Ejecute y guarde el script como P3_03.sql. 
    La salida de ejemploes la siguiente:

Salida

 Sol.lució  
 -- VARIABLE b_basic_percent NUMBER
 -- VARIABLE b_pf_percent NUMBER
 SET SERVEROUTPUT ON
   /*:b_basic_percent:=45;
   :b_pf_percent:=12;*/
 DECLARE
   v_basic_percent NUMBER:=45;
   v_pf_percent NUMBER:=12;
   v_fname VARCHAR2(15);
   v_emp_sal NUMBER(10);
 BEGIN
   SELECT first_name, salary INTO v_fname, v_emp_sal
   FROM employees WHERE employee_id=110;
   DBMS_OUTPUT.PUT_LINE(' Hello '|| v_fname);
   /*
  DBMS_OUTPUT.PUT_LINE('TODAY IS : '|| v_today);
  DBMS_OUTPUT.PUT_LINE('TOMORROW IS : ' || v_tomorrow);*/
   ...
   ...
   /
 --PRINT b_basic_percent
 --PRINT b_basic_percent