Functions


Function

It is a set of programming commands that returns a value. Functions can be used in command-line SQL statements, in PL/SQL code, and other functions. Observe that a function may return any type of value, while a stored procedure must return an integer value using the instruction RETURN.
Es un conjunto de comandos de programación que regresa un valor. Las funciones pueden ser usadas como líneas de comando SQL, en código PL/SQL y en otras funciones. Observe que una función puede regresar cualquier tipo de valor, mientras que un procedimiento almacenado debe regresar un valor entero usando la instrucción RETURN.

Function Arguments

It is possible to pass one or more values to a function. A value passed to a function is called argument. The return value of the function usually depends on the value of the arguments you pass to the function as shown in the figure below.
Es posible pasar uno o más argumentos a una función. Un valor que se pasa a una función se conoce como argumento. El valor que regresa la función depende usualmente del valor que se pasa a ésta como se muestra en la figura de abajo.

function

Problem 1
kimberly > Create and test the function in Oracle.
Cree y pruebe la función en Oracle.

kimberly.sql
CREATE OR REPLACE FUNCTION add5
(
     input NUMBER
)
RETURN NUMBER
IS
     p_result NUMBER(5, 2) := 0;
BEGIN
     p_result := input + 5;
     RETURN (p_result);
END add5;
/

MSDOS: cmd.exe
SQL> SELECT cost, add5(cost) FROM material;

      COST ADD5(COST)
---------- ----------
       1.5        6.5
       2.5        7.5
      3.53       8.53
       7.5       12.5
      9.87      14.87


Tip
You can use the DUAL table to test any function.
La tabla DUAL puede ser usada para probar las funciones.

Problem 2
kimberly > Test the function of the previous problem using the dual table.
Pruebe la función del problema anterior usando la tabla dual.

MSDOS: cmd.exe
SQL> SELECT add5(10) FROM dual;

  ADD5(10)
----------
        15


Problem 3
kimberly > Create and test the add5 function of the previous problems using Microsoft SQL Server.
Cree y pruebe la función add5 de los problemas anteriores usando Microsoft SQL Server.

Microsoft SQL Server
USE kimberly;
SELECT cost, dbo.add5(cost) AS price
FROM material;

micro_add5

kimberly.sql
CREATE FUNCTION add5
(
     @input DECIMAL(10, 2)
)
RETURNS DECIMAL(10,2)
AS
BEGIN
     DECLARE @result AS DECIMAL(10, 2);
     SET @result = @input + 5.0;
     RETURN (@result);
END
GO


Problem 4
kimberly > Create a function called multiply to multiply two numbers. Using: (a) Oracle, (b) Microsoft SQL Server.
Cree una función llamada multiply para multiplicar dos números. Usando: (a) Oracle, (b) Microsoft SQL Server.

MSDOS: cmd.exe
SQL> SELECT name,
  2  multiply(width, height) AS product
  3  FROM item;

NAME          PRODUCT
---------- ----------
Book                6
TV                 14
Chair              32
Bed                12
Table              36
Computer            2
CD                 30
Printer          3.52
Picture           120
Speaker             3

10 rows selected.

Microsoft SQL Server
USE kimberly;
SELECT name, dbo.multiply(width, height) AS product
FROM item;

micro_multiply

Problem 5
kimberly > Modify the script to add and populate the table temperature as shown below. Using: (a) Oracle, (b) Microsoft SQL Server. Use the IDENTITY command in the TEMPERATURE_ID column in Microsoft SQL Server.
Modifique el script para agregar y llenar la tabla temperature como se muestra debajo. Usando: (a) Oracle, (b) Microsoft SQL Server. Use el commando IDENTITY en la columna TEMPERATURE_ID en Microsoft SQL Server.

MSDOS: cmd.exe
SQL> SELECT * FROM temperature;

TEMPERATURE_ID      VALUE
-------------- ----------
             1        -40
             2         32
             3         68
             4        212

Microsoft SQL Server
SELECT *
FROM temperature;

temperature

Problem 6
kimberly > Create a function to convert temperatures called to_celsius (see formula below). The function should take a Fahrenheit temperature and returns the equivalent Celsius temperature. Using: (a) Oracle, (b) Microsoft SQL Server.
Cree una función para convertir temperaturas llamada to_celsius (vea la fórmula de abajo). La función debe tomar un valor en grados Fahrenheit y regresar un valor en Celsius. Usando: (a) Oracle, (b) Microsoft SQL Server.

celsiusFormula

MSDOS: cmd.exe
SQL> SELECT value, to_celsius(value) AS celsius
  2  FROM temperature;

     VALUE    CELSIUS
---------- ----------
       -40        -40
        32          0
        68         20
       212        100

Microsoft SQL Server
SELECT value,
dbo.to_celsius(value) AS celsius
FROM temperature;

micro_to_celsius

Tip
It is possible to delete any function using the command DROP FUNCTION.
Es posible borrar o eliminar cualquier función usando el comando DROP FUNCTION.

Problem 7
Indicate whether the next statement is true or false: A stored procedure and a function are basically the same and can be used without any distinction.
Diga si es cierto o falso: Un procedimiento almacenado es lo mismo que una función y por lo tanto pueden ser usados sin ninguna distinción.

Problem 8
kimberly > Create a function to compute the weight of each item. Create, then, another function to compute the item price. Remember that the weight of each item is the product of its volume by its density. While the item cost is the item weight multiplied by the item material cost. Using: (a) Oracle, (b) Microsoft SQL Server.
Cree una función para calcular el peso de cada artículo. Cree entonces otra función para calcular el precio de éste. Recuerde que el peso de un artículo es su volumen por su densidad. Mientras que el costo es el peso del objeto multiplicado por el precio del material que está hecho. Usando: (a) Oracle, (b) Microsoft SQL Server.

MSDOS: cmd.exe
SQL> SELECT name, get_weight(item_id) AS weight,
  2  get_cost(item_id) AS cost
  3  FROM item;

NAME           WEIGHT       COST
---------- ---------- ----------
Book                2          3
TV                127        318
Chair             101        357
Bed                30        225
Table             114        402
Computer          121       1194
CD                 27         68
Printer             9         23
Picture             7         11
Speaker            11         39

10 rows selected.

Microsoft SQL Server
SELECT name,
dbo.get_weight(item_id) AS weight,
dbo.get_cost(item_id) AS cost
FROM item;

micro_weight_cost

© Copyright 2000-2019 Wintempla selo. All Rights Reserved. Sep 05 2019. Home