PracticaS BaSe De DatoS Oracle
Enviado por erik1 • 24 de Abril de 2012 • 584 Palabras (3 Páginas) • 1.382 Visitas
PRACTICA 3 FUNCIONES
SQL> create or replace function suma
2 return number is
3 v_suma number(4);
4 Begin
5 select 4+5 into v_suma
6 from dual;
7 return v_suma;
8 end;
9 /
Funci¾n creada.
SQL> select suma from dual;
SUMA
----------
9
SQL> var x number;
SQL> set autoprin on;
SQL> exec :x:=suma;
Procedimiento PL/SQL terminado correctamente.
X
----------
9
SQL> create or replace function
2 suma(x number, y number)
3 return number is
4 v_suma number(4);
5 begin
6 select x+y into v_suma
7 from dual;
8 return v_suma;
9 end;
10 /
Funci¾n creada.
SQL> select suma(3,5) from dual;
SUMA(3,5)
----------
8
SQL> var x number;
SQL> set autoprin on;
SQL> exec :x:=suma(3,5);
Procedimiento PL/SQL terminado correctamente.
X
----------
8
SQL> create or replace function circulo(radio number , areaper number)
2 return number is
3 v_perimetro number(7,2);
4 v_area number(7,2);
5 pi number(7,4):=3.1416;
6 begin
7 if areaper=1 then
8 return pi*2*radio;
9 else
10 return pi*radio*radio;
11 end if;
12 end;
13 /
Funci¾n creada.
SQL> select circulo(5,1) from dual;
CIRCULO(5,1)
------------
31.416
SQL> select circulo(5,2) from dual;
CIRCULO(5,2)
------------
78.54
SQL> var x number;
SQL> set autoprin on;
SQL> exec :x:=circulo(5,1);
Procedimiento PL/SQL terminado correctamente.
X
----------
31.416
SQL> exec :x:=circulo(5,2);
Procedimiento PL/SQL terminado correctamente.
X
----------
78.54
SQL> create or replace function
2 circulo(r number)
3 return varchar2 is v_perimetro number(7,2);
4 v_area number(7,2);
5 begin
6 select 3.1416*r*r,2*r*3.1416 into v_area,v_perimetro from dual;
7 return 'el area es: ' || to_char(v_area) || ' el perimetro es: ' || to_char
(v_perimetro);
8
9 end;
10 /
Funci¾n creada.
SQL> select circulo(5) from dual;
CIRCULO(5)
--------------------------------------------------------------------------------
...