Diferència entre revisions de la pàgina «P3-Escritura de Sentencias Ejecutables»
De wikiserver
(Hi ha 13 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 | + | '''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.''' |
− | cada una de las siguientes variables, según las reglas de los ámbitos. | ||
− | |||
− | + | [[Fitxer:bloc1.png|500px|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:''' | ||
+ | |||
+ | [[Fitxer:bloc2.png|500px|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: | ||
+ | [[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.
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:
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:
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