Sei sulla pagina 1di 4

EJERCICIOS 1

1)ACCEPT cod_emp PROMT 'por favor ingrese el codigo del empleado:'

ACCEPT num_sueldo PROMT 'por favor ingrese el sueldo del empleado:'

DECLARE

v_emp number(10):= &cod_emp;

v_sueldo number(20,4):=&num_sueldo;

v_comicion number (10,5);

BEGIN

if v_sueldo < 1000 then

v_comicion:=v_sueldo * 0.10;

elseif v_sueldo > 1000 && v_sueldo < 1500 then

v_comicion:=v_sueldo * 0.15;

elseif v_sueldo > 1500 then

v_comicion:=v_sueldo * 0.20;

else v_emp == 201 || v_emp == 202 || v_emp == 203 || v_emp == 204 || v_emp == 205

v_comicion := v_sueldo;

DBMS_OUTPUT.PUT_LINE(' codigo:'v_emp ||'comision' v_comision);

END IF;

END;

2,3 y 4).

create table items(


cod_orden number(4),
cod_item number(4));

create or replace procedure capra1903 is

orden cod_orden :=601;


BEGIN
for contador in 1..10 loop
insert into items(orden)
values(contador);
end loop;
end capra1903;

EJERCICIOS 2

v_cod number(4);// es legal ya que es una variable tipo numero y tiene 4 dgitos enteros, el nombre
no tiene caracteres espaciales que puedan hacer que falle.

v_x,v_y,v_z varchar2(20);//no es legal debido a que la variable se declara con mltiples nombres,
solo se puede declarar uno a la vez, esta mal declarado.

v_fech_nac DATA SYSDATE;//No es legal es NOT NULL no fue asignado ':='.

V_stock Bolean := 1//no es legal ya que el tipo de dato boolean solo recive como dato de entrada
'true' o 'false y se le esta asiignando un 1.

2)

v_dias := SYSDATE v_fec_nac; tipo de dato 'DATE'

v_destino := USER || : TO_CHAR(v_cod_dpto); tipo de dato 'varchar'

v_suma := $100,000 + $250,000; tipo de dato 'number'

V_flag =: true tipo de dato 'BOOLEAN'

v_n1 := v_n2 > (2 * v_n10); tipo de dato 'BOOLEAN'

EJERCICIOS 3

1)DECLARE

BEGIN

DBMS_OUTPUT.PUT_LINE(' MI PRIMER BLOQUE DE TRABAJO PL/SQL');

END;

2)DECLARE

sueldo_luis number(20);

BEGIN

sueldo_luis := 6900;
DBMS_OUTPUT.PUT_LINE('El sueldo de luis es:'|| sueldo_luis);

END;

Ejercicio 4
ACCEPT sueldo_mensual PROMT 'Por favor ingrese el seldo anual: '

ACCEPT comision PROMT 'Por favor ingrese la comision: '

DECLARE

v_sueldo number(19,4) := &sueldo_anual;

v_comision number(19,4) := &comision / 100;

v_salario_tot number(19,4);

-- --

BEGIN

v_salario_tot := (v_sueldo / 12) * v_comision;

--

DECLARE v_comision2 number(10,2) := 0.10;

v_salario2 number(10,2);

BEGIN

v_salario2 := v_sueldo / 12 * v_comision2;

/* Salida del bloque interno */

DBMS_OUTPUT.PUT_LINE('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%');

DBMS_OUTPUT.PUT_LINE('El sueldo de Juan es: '||v_salario_tot);


DBMS_OUTPUT.PUT_LINE('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%');

DBMS_OUTPUT.PUT_LINE('_____________________________________');

DBMS_OUTPUT.PUT_LINE('El sueldo Maria: '||v_salario2);

DBMS_OUTPUT.PUT_LINE('_____________________________________');

END;

-- -- salida global --

END;

/solucion: si DBMS_OUTPUT.PUT_LINE('El sueldo Maria: '||v_salario2); esta afuera de el bloque interno no sera declarado por que el
bloque ya habra terminado antes de que se muestre.

EJERCICIO 5

a.- el valor de v_peso en el sub-bloque es: 600, ya que se ha declarado la variable en anterior mente
del bloque de ejecucion.

DECLARE v_peso number(4) := 600; v_mensaje varchar2(255) := 'Producto 10012'; -- -- BEGIN /*


SUB_BLOQUE */ -- DECLARE v_peso number(4) := 1; v_mensaje varchar2(255) := 'Producto 11001';
v_sitio varchar2(500) := 'Europa'; BEGIN v_peso := v_peso + 1; v_sitio := 'Sur de '||v_sitio;
DBMS_OUTPUT.PUT_LINE('%%%%%%%%%%%%');
DBMS_OUTPUT.PUT_LINE('El en nuevo sitio es: '||v_sitio);
DBMS_OUTPUT.PUT_LINE('%%%%%%%%%%%%'); END; -- v_peso := v_peso + 1; v_mensaje :=
v_mensaje || 'Est en stock'; v_sitio := 'Sur de '||v_sitio; --
DBMS_OUTPUT.PUT_LINE('____________________________________________');
DBMS_OUTPUT.PUT_LINE('El articulo '||v_peso||' '||v_mensaje||' en el '||v_sitio);
DBMS_OUTPUT.PUT_LINE('____________________________________________'); END; /

Potrebbero piacerti anche