El siguiente es un ejemplo muy sencillo de un SP que hace una operación aritmética, y luego la inserta en una tabla:
Código SQL
[-]
CREATE PROCEDURE "Oper"(
numero1 DECIMAL(18, 4),
numero2 DECIMAL(18, 4),
signo CHAR(1))
RETURNS(
out_result DECIMAL(18, 4))
AS
BEGIN
IF (signo = '+') THEN
out_result = numero1 + numero2;
ELSE IF (signo = '-') THEN
out_result = numero1 - numero2;
ELSE IF (signo = '*') THEN
out_result = numero1 * numero2;
ELSE IF (signo = '/') THEN
out_result = numero1 / numero2;
insert into NombreTabla (resultado) values(
ut_result);
SUSPEND;
END
Este se llama un "select procedure", algo así como un procedimiento seleccionable. También existen los procedimientos ejecutables, pero para que comprendas mejor te invito a leer la documentación de Interbase. Si trabajas con una versión posterior a la 6.0, no importa, igual puede leer los documentos de esa versión.
En este caso para ejecutar el procedimiento podrías escribir:
Código SQL
[-]
select * from "Oper"(4.5, 3, '*');
Si le quitas la sentencia SUSPEND al procedimiento entonces se convierte en un procedimiento ejecutable. En ese caso podrías llamar al procedimiento así:
Código SQL
[-]
execute procedure "Oper"(4.5, 3, '*');
Mucha suerte.