Diferència entre revisions de la pàgina «M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL T3»
(→T3- Solución : Escritura de sentencias ejecutables) |
|||
(Hi ha 11 revisions intermèdies del mateix usuari que no es mostren) | |||
Línia 1: | Línia 1: | ||
− | ==T3- | + | ==T3- Solución : Escritura de sentencias ejecutables== |
− | + | En esta práctica, examinará y escribirá sentencias ejecutables. | |
− | : | + | [[Imatge:m2uf3_ese_1.png |600px|center| Escritura sentencias ejecutables]] |
− | |||
− | + | 1) Evalúe el bloque PL/SQL anterior y determine tanto el tipo de dato como el valor de cada una de las siguientes variables, según las reglas de los ámbitos. | |
− | :: | + | :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''' | |
− | : | + | [[Imatge:M2UF3_ESE_2.png |600px|center| Escriptura de Sentències Executables]] |
− | + | '''2)''' En el bloc anterior, determina el valor i el tipus de dada en cada un dels següents cassos: | |
− | : | + | :a) Valor de v_customer en el bloc anidat: |
− | |||
− | :: | + | ::'''201''' |
+ | ::'''El tipo de dato es NUMBER.''' | ||
− | + | :b) Valor de v_name en el bloc anidat: | |
− | :: | + | ::'''Unisports''' |
+ | ::'''El tipo de dato es VARCHAR2.''' | ||
− | + | :c) Valor de v_credit_rating en el bloc anidat: | |
− | :: | + | ::'''GOOD''' |
+ | ::'''El tipo de dato es VARCHAR2.''' | ||
− | + | :d) Valor de v_customer en el bloc principal: | |
+ | ::'''Womansport''' | ||
+ | ::'''El tipo de dato es VARCHAR2.''' | ||
− | + | :e) Valor de v_name en el bloc principal: | |
− | + | '''No valid. No és visible en aquest punt.''' | |
+ | :f) Valor de v_credit_rating en el bloc principal: | ||
+ | |||
+ | ::'''GOOD''' | ||
+ | ::'''El tipo de dato es VARCHAR2.''' | ||
+ | |||
+ | |||
+ | 3) Utilice la misma sesión que utilizó para ejecutar las prácticas de la lección titulada “Declaración de Variables PL/SQL”. Si ha abierto una nueva sesión, ejecute lab_02_05_soln.sql. A continuación, edite lab_02_05_soln.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. | ||
<pre> | <pre> | ||
− | VARIABLE | + | -- VARIABLE b_basic_percent NUMBER |
− | + | -- VARIABLE b_pf_percent NUMBER | |
− | + | SET SERVEROUTPUT ON | |
− | + | </pre> | |
− | / | ||
− | |||
− | + | :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. | |
− | + | <pre> | |
− | + | /*:b_basic_percent:=45; | |
+ | :b_pf_percent:=12;*/ | ||
</pre> | </pre> | ||
− | + | :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. | |
+ | <pre> | ||
+ | DECLARE | ||
+ | v_basic_percent NUMBER:=45; | ||
+ | v_pf_percent NUMBER:=12; | ||
+ | v_fname VARCHAR2(15); | ||
+ | v_emp_sal NUMBER(10); | ||
+ | </pre> | ||
− | + | :d) Incluya la siguiente sentencia SQL en la sección ejecutable: | |
+ | <pre> | ||
+ | SELECT first_name, salary INTO v_fname, v_emp_sal | ||
+ | FROM employees WHERE employee_id=110; | ||
+ | </pre> | ||
− | + | :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 imprimen las | |
+ | variables de enlace. | ||
+ | <pre> | ||
+ | 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 | ||
+ | </pre> | ||
− | + | :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. | |
− | + | <pre> | |
− | + | DBMS_OUTPUT.PUT_LINE('YOUR SALARY IS : '||v_emp_sal); | |
+ | DBMS_OUTPUT.PUT_LINE('YOUR CONTRIBUTION TOWARDS PF:'||v_emp_sal*v_basic_percent/100*v_pf_percent/100); | ||
+ | END; | ||
</pre> | </pre> | ||
− | + | ||
− | + | :g) Ejecute y guarde el script como lab_03_03_soln.sql. La salida de ejemplo es la siguiente: | |
− | + | ||
− | + | [[Imatge:m2uf3_ese_2.png |300px|center| Escritura sentencias ejecutables]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Revisió de 17:04, 22 feb 2019
T3- Solución : Escritura de sentencias ejecutables
En esta práctica, examinará y escribirá sentencias ejecutables.
1) Evalúe el bloque PL/SQL anterior y determine tanto el tipo de dato como el valor de cada una de las siguientes variables, según las reglas de los ámbitos.
- 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 bloc anterior, determina el valor i el tipus de dada en cada un dels següents cassos:
- a) Valor de v_customer en el bloc anidat:
- 201
- El tipo de dato es NUMBER.
- b) Valor de v_name en el bloc anidat:
- Unisports
- El tipo de dato es VARCHAR2.
- c) Valor de v_credit_rating en el bloc anidat:
- GOOD
- El tipo de dato es VARCHAR2.
- d) Valor de v_customer en el bloc principal:
- Womansport
- El tipo de dato es VARCHAR2.
- e) Valor de v_name en el bloc principal:
No valid. No és visible en aquest punt.
- f) Valor de v_credit_rating en el bloc principal:
- GOOD
- El tipo de dato es VARCHAR2.
3) Utilice la misma sesión que utilizó para ejecutar las prácticas de la lección titulada “Declaración de Variables PL/SQL”. Si ha abierto una nueva sesión, ejecute lab_02_05_soln.sql. A continuación, edite lab_02_05_soln.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.
-- VARIABLE b_basic_percent NUMBER -- VARIABLE b_pf_percent NUMBER SET SERVEROUTPUT ON
- 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.
/*:b_basic_percent:=45; :b_pf_percent:=12;*/
- 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.
DECLARE v_basic_percent NUMBER:=45; v_pf_percent NUMBER:=12; v_fname VARCHAR2(15); v_emp_sal NUMBER(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 continuación, comente las líneas que muestran las fechas e imprimen las
variables de enlace.
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
- 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.
DBMS_OUTPUT.PUT_LINE('YOUR SALARY IS : '||v_emp_sal); DBMS_OUTPUT.PUT_LINE('YOUR CONTRIBUTION TOWARDS PF:'||v_emp_sal*v_basic_percent/100*v_pf_percent/100); END;
- g) Ejecute y guarde el script como lab_03_03_soln.sql. La salida de ejemplo es la siguiente: