CASO1:
MOSTRAR MENSAJES
BEGIN
dbms_output.put_line('INSTITUTO SISE- UNIVERSITARIA');
dbms_output.put_line('BIENVENIDOS A PL/SQL');
END;
SIEMPRE USAR BEGIN, END
CASO2:
CREAR 2 VARIABLES Y ASIGNAR 10 Y 5 (RESPECTIVAMENTE), LUEGO CALCULAR Y VISUALIZAR
LAS 4 OPERACIONES(+ - * /)
DECLARE
NUMERO1 DECIMAL :=10;
NUMERO2 DECIMAL :=5;
CALCULAR DECIMAL;
BEGIN
CALCULAR := NUMERO1 - NUMERO2;
dbms_output.put_line('RESTA: '||CALCULAR);
CALCULAR := NUMERO1 + NUMERO2;
dbms_output.put_line('SUMA: '||CALCULAR);
CALCULAR := NUMERO1 * NUMERO2;
dbms_output.put_line('MULTIPLICACION: '||CALCULAR);
CALCULAR := NUMERO1/NUMERO2;
dbms_output.put_line('DIVISION: '||CALCULAR);
END;
PROBANDO CODIGOS
DECLARE
N NUMBER;
B BOOLEAN;
D DATE;
C VARCHAR2(40);
X NUMBER;
BEGIN
N:= 5*0.7;
DBMS_OUTPUT.PUT_LINE('LA VARIABLE N ES: '|| N);
B:= TRUE;
D:='04-NOV-2005';
DBMS_OUTPUT.put_line('LA VARIABLE D ES: '|| D);
C:='ANTONY ' || 'AND' || ' CLEOPATRA';
DBMS_OUTPUT.put_line('LA VARIABLE C ES: '|| C);
X:=NULL;
DBMS_OUTPUT.put_line('LA VARIABLE X ES: '|| X);
END;
PROBANDO CODIGOS 2
DECLARE
V_SAL NUMBER;
V_NAME VARCHAR(50);
V_FECHA DATE;
BEGIN
V_SAL:=ROUND(2585.6452,2);
V_NAME:=INITCAP('BASE DE DATOS AVANZADO');
V_FECHA:=TO_DATE('06/05/2005','DD/MM/YYYY');
DBMS_OUTPUT.put_line('CURSO:'||V_NAME||'FECHA: '||
TO_CHAR(V_FECHA,'DD DAY MONTH YYYY'));
DBMS_OUTPUT.put_line('SALARIO: ' || V_SAL);
END;
CASO 5
IMAGEN
DECLARE
MONTO DECIMAL := 1000;
SOCIO1 DECIMAL;
SOCIO2 DECIMAL;
SOCIO3 DECIMAL;
SOCIO4 DECIMAL;
SOCIO5 DECIMAL;
SOCIO6 DECIMAL;
BEGIN
SOCIO1 := 1000 * 0.25;
dbms_output.put_line('25% MONTO A REPARTIR: '||SOCIO1);
SOCIO2 := 1000 * 0.10;
dbms_output.put_line('10% MONTO A REPARTIR: '||SOCIO2);
SOCIO3 := 1000 * 0.15;
dbms_output.put_line('15% MONTO A REPARTIR: '||SOCIO3);
SOCIO4 := 1000 * 0.05;
dbms_output.put_line('5% MONTO A REPARTIR: '||SOCIO4);
SOCIO5 := 1000 * 0.20;
dbms_output.put_line('20% MONTO A REPARTIR: '||SOCIO5);
SOCIO6 := 1000-(SOCIO1+SOCIO2+SOCIO3+SOCIO4+SOCIO5);
dbms_output.put_line('LO QUE QUEDA MONTO A REPARTIR: '||SOCIO6);
END;
CASO 6:
DECLARE
MONTO DECIMAL;
SOCIO1 DECIMAL;
SOCIO2 DECIMAL;
SOCIO3 DECIMAL;
SOCIO4 DECIMAL;
SOCIO5 DECIMAL;
SOCIO6 DECIMAL;
BEGIN
--& ESTO ES PARA Q APAREZCA UNA VENTANA DE DIALOGO SOLICITANDO DATOS
MONTO:= &INGRESE_MONTO;
SOCIO1 := MONTO * 0.25;
dbms_output.put_line('25% MONTO A REPARTIR: '||SOCIO1);
SOCIO2 := MONTO * 0.10;
dbms_output.put_line('10% MONTO A REPARTIR: '||SOCIO2);
SOCIO3 := MONTO * 0.15;
dbms_output.put_line('15% MONTO A REPARTIR: '||SOCIO3);
SOCIO4 := MONTO * 0.05;
dbms_output.put_line('5% MONTO A REPARTIR: '||SOCIO4);
SOCIO5 := MONTO * 0.20;
dbms_output.put_line('20% MONTO A REPARTIR: '||SOCIO5);
SOCIO6 := MONTO-(SOCIO1+SOCIO2+SOCIO3+SOCIO4+SOCIO5);
dbms_output.put_line('LO QUE QUEDA MONTO A REPARTIR: '||SOCIO6);
END;
CASO 7:
DECLARE
NUMERO1 DECIMAL;
NUMERO2 DECIMAL;
BEGIN
NUMERO1:=&INGRESE_NUMERO1;
NUMERO2:=&INGRESE_NUMERO2;
IF (NUMERO1>NUMERO2) THEN
DBMS_OUTPUT.put_line('EL NUMERO MAYOR ES: '|| NUMERO1);
ELSIF (NUMERO2>NUMERO1) THEN
DBMS_OUTPUT.put_line('EL NUMERO MAYOR ES: '|| NUMERO2);
ELSE
DBMS_OUTPUT.put_line('IGUALES');
END IF;
END;
CASO 8
DECLARE
V_NUMERO PLS_INTEGER;
V_TEXTO VARCHAR(40);
BEGIN
V_NUMERO :=&"INGRESE NUMERO";
FOR I IN 1..12 LOOP
V_TEXTO:= V_NUMERO ||' X ' || I;
V_TEXTO:= V_TEXTO || ' = ';
V_TEXTO:=V_TEXTO || V_NUMERO * I;
DBMS_OUTPUT.put_line(V_TEXTO);
END LOOP;
END;
CASO 9:
DECLARE
NUMERO1 PLS_INTEGER;
TEXTO VARCHAR(40);
TEXTO2 VARCHAR(40);
T1 VARCHAR(40);
BEGIN
DBMS_OUTPUT.put_line('N' || CHR(9)|| 'CUADRADO' || CHR(9) ||'CUBO');
FOR I IN 1..15 LOOP
T1:=I;
TEXTO:= I * I;
TEXTO2:= I * I * I;
DBMS_OUTPUT.put_line(T1 || CHR(9)|| CHR(9)|| CHR(9) || TEXTO || CHR(9)||CHR(9) ||
CHR(9)||CHR(9)|| TEXTO2);
END LOOP;
END;
CASO 10:
USO DEL LOOP
DECLARE
N INTEGER;
CUA INTEGER;
CUB INTEGER;
BEGIN
N:=0;
LOOP
N:=N+1;
CUA:=N*N;
CUB:=N*N*N;
DBMS_OUTPUT.put_line(N||CHR(9)||CUA||CHR(9)||CUB);
EXIT WHEN N=20;
END LOOP;
DBMS_OUTPUT.put_line('FIN DEL LOOP');
END;
CASO 11:
SACAR NUMERO PAR E IMPAR
DECLARE
V_CONT_N NUMBER:=1;
BEGIN
WHILE V_CONT_N <=20 LOOP
IF MOD(V_CONT_N,2)=0 THEN
DBMS_OUTPUT.put_line(V_CONT_N || ' ES PAR');
ELSE
DBMS_OUTPUT.put_line(V_CONT_N || ' ES IMPAR');
END IF;
V_CONT_N :=V_CONT_N +1;
END LOOP;
END;
CASO 12:
EJECUTAR LA BASE DATOS NEPTUNO
DECLARE
ID INTEGER;
DESTINO VARCHAR(100);
BEGIN
ID:=&"No. PEDIDO: ";
SELECT DESTINATARIO INTO DESTINO
FROM PEDIDOS WHERE IDPEDIDO=ID;
DBMS_OUTPUT.put_line('DESTINATARIO :'|| DESTINO);
END;
CASO 13:
DECLARE
CODIGO CLIENTES.IDCLIENTE%TYPE:='SISE2';
NOMBRE CLIENTES.NOMBRECOMPAIA%TYPE:='INSTITUTO SISE';
DIRECCION CLIENTES.DIRECCION%TYPE:='AV. UNIVERSITARIA 1290';
BEGIN
INSERT INTO CLIENTES(IDCLIENTE,NOMBRECOMPAIA,DIRECCION)
VALUES (CODIGO,NOMBRE,DIRECCION);
COMMIT;
END;
CASO 14:
DECLARE
CODIGO INTEGER;
PRECIO INTEGER;
BEGIN
CODIGO:=&"iNGRESE CODIGO";
PRECIO:=&"INGRESE PRECIO";
UPDATE PRODUCTOS SET PRECIOUNIDAD=PRECIO
WHERE IDPRODUCTO=CODIGO;
COMMIT;
END;
CASO 15:
--USO DE SENTENCIAS SQL CON PL/SQL
DECLARE
NUMERO PEDIDOS.IDPEDIDO%TYPE;
DIRECCION PEDIDOS.DIRECCIONDESTINATARIO%TYPE;
CIUDAD PEDIDOS.CIUDADDESTINATARIO%TYPE;
DESTINO PEDIDOS.DESTINATARIO%TYPE;
BEGIN
NUMERO:=10248;
SELECT DESTINATARIO,CIUDADDESTINATARIO,DIRECCIONDESTINATARIO INTO
DESTINO,CIUDAD,DIRECCION
FROM PEDIDOS WHERE IDPEDIDO = NUMERO;
DBMS_OUTPUT.put_line('PEDIDO No : '|| TO_CHAR(NUMERO));
DBMS_OUTPUT.put_line('DESTINATARIO: '||DESTINO);
DBMS_OUTPUT.put_line('DIRECCION:' ||DIRECCION);
DBMS_OUTPUT.put_line('CIUDAD: '||CIUDAD);
END;
CASO 16:
--CASO 2
DECLARE
ID PRODUCTOS.IDPRODUCTO%TYPE;
NOMBRE PRODUCTOS.NOMBREPRODUCTO%TYPE;
PRECIO PRODUCTOS.PRECIOUNIDAD%TYPE;
CATEGORIA CATEGORIAS.NOMBRECATEGORIA%TYPE;
BEGIN
ID:=&"CODIGO DEL PRODUCTO";
SELECT NOMBREPRODUCTO,PRECIOUNIDAD,NOMBRECATEGORIA INTO NOMBRE,PRECIO,CATEGORIA
FROM PRODUCTOS INNER JOIN CATEGORIAS USING(IDCATEGORIA)
WHERE IDPRODUCTO = ID;
DBMS_OUTPUT.put_line('CODIGO: '||TO_CHAR(ID));
DBMS_OUTPUT.PUT_LINE('PRODUCTO: '||NOMBRE);
DBMS_OUTPUT.put_line('PRECIO: '||PRECIO);
DBMS_OUTPUT.PUT_LINE('CATEGORIA: '||CATEGORIA);
END;
CASO 17:
--CASO 3
DECLARE
NUMERO PEDIDOS.IDPEDIDO%TYPE;
FECHAPEDIDO PEDIDOS.FECHAPEDIDO%TYPE;
FECHADEENVIO PEDIDOS.FECHAENVIO%TYPE;
DESTINATARIO PEDIDOS.DESTINATARIO%TYPE;
APELLIDOEMPLEADO EMPLEADOS.APELLIDOS%TYPE;
NOMBREEMPLEADO EMPLEADOS.NOMBRE%TYPE;
BEGIN
NUMERO:=&"CODIGO DEL PRODUCTO";
SELECT FECHAPEDIDO,FECHAENVIO,DESTINATARIO,APELLIDOS,NOMBRE INTO
FECHAPEDIDO,FECHADEENVIO,DESTINATARIO,APELLIDOEMPLEADO,NOMBREEMPLEADO
FROM PEDIDOS INNER JOIN EMPLEADOS USING(IDEMPLEADO)
WHERE IDPEDIDO = NUMERO;
DBMS_OUTPUT.put_line('NUMERO DEL PEDIDO: '||TO_CHAR(NUMERO));
DBMS_OUTPUT.PUT_LINE('FECHA DEL PEDIDO: '||FECHAPEDIDO);
DBMS_OUTPUT.put_line('FECHA DE ENVIO: '||FECHADEENVIO);
DBMS_OUTPUT.PUT_LINE('DESTINATARIO: '||DESTINATARIO);
DBMS_OUTPUT.PUT_LINE('EMPLEADO: '||APELLIDOEMPLEADO|| ' '||NOMBREEMPLEADO);
END;
SELECT * FROM PEDIDOS;
CASO 18:
SOLICITAR EL #PEDIDO
VISUALIZAR
NRO DEL PEDIDO
IMPORTE TOTAL
--CASO 4
DECLARE
ID PEDIDOS.IDPEDIDO%TYPE;
CANT DETALLESDEPEDIDOS.CANTIDAD%TYPE;
PRECIOUNID DETALLESDEPEDIDOS.PRECIOUNIDAD%TYPE;
IMPORTETOTAL NUMBER;
BEGIN
ID:=&"CODIGO DEL PEDIDO";
SELECT COUNT(IDPEDIDO),DP.PRECIOUNIDAD,DP.CANTIDAD
INTO PRECIOUNID,CANT
FROM PEDIDOS T
INNER JOIN DETALLESDEPEDIDOS DP ON T.IDPEDIDO =DP.IDPEDIDO
WHERE T.IDPEDIDO = ID;
END;
SELECT * FROM DETALLESDEPEDIDOS
WHERE IDPEDIDO=10248;
SELECT * FROM DETALLESDEPEDIDOS;
SELECT * FROM PEDIDOS;
SELECT * FROM PRODUCTOS;
SELECT * FROM CLIENTES;
---CASO 5
DECLARE
ID DETALLESDEPEDIDOS.IDPEDIDO%TYPE;
IMPO DETALLESDEPEDIDOS.PRECIOUNIDAD%TYPE;
BEGIN
ID:=&"ID PEDIDO";
SELECT SUM(CANTIDAD*PRECIOUNIDAD) INTO IMPO
FROM DETALLESDEPEDIDOS
WHERE IDPEDIDO= ID;
DBMS_OUTPUT.PUT_LINE('ID PEDIDO:' || TO_CHAR(ID));
DBMS_OUTPUT.PUT_LINE('IMPORTE TOTAL :'|| TO_CHAR(IMPO));
END;