Oracle stored procedure and stored function creation method (detailed)

select * from emp;
-----------------Stored Procedures----------------------
--definition
   create[or replace] procedure stored procedure name (parameter name[in]/out data type)
   is/as
   begin
--Logical expression
end [stored procedure name];
--Define a stored procedure to calculate the annual salary and allow the output
  create or replace procedure proc_salyears(v_no in number)
   is
   sal_years number(9,2);
   begin
 --Calculate annual salary
select sal*12+nvl(comm,0) into sal_years from emp where empno=v_no;
--output
dbms_output.put_line(sal_years);
   end;
-- call stored procedure
 Way 1:
call proc_salyears(7788);
Method 2:
begin
       proc_salyears(7369);
     end;  
Stored procedure with --out parameter
--Calculate annual salary and return  
  create or replace procedure proc_salyears(v_no in number,sal_years out number)
   is
   begin
 --Calculate annual salary
select sal*12+nvl(comm,0) into sal_years from emp where empno=v_no;
   end;
-- call stored procedure
declare
   v_sal number (9,2);
  begin
     proc_salyears(7876,v_sal);
     dbms_output.put_line(v_sal);
  end;
-----------------Stored function------------
--definition
create or replace function store function name (parameter name in/out data type)
    return data type
    is|as
    begin
        return specific data;
    end [stored function name];
--Define the name of the stored function to calculate the annual salary
create or replace function fun_salyears(f_no number)
    return number
    is
  sal_years number(9,2);
    begin
    select sal*12+nvl(comm,0) into sal_years from emp where empno=f_no;
        return sal_years;
    end ;
-- use a stored function
declare
  sal_yeats number(9,2);
  begin
    sal_yeats := fun_salyears(7876);
    dbms_output.put_line(sal_yeats);
  end;
 
-- can be abbreviated
begin
    dbms_output.put_line(fun_salyears(7369));
  end;
--------The difference between stored procedure and stored function-------

[b] Stored procedures are mostly used for data sharing between projects, and stored functions are mostly called by stored procedures.
Stored functions can be called in SQL statements, but stored procedures cannot.

The stored procedure has no return value. Stored functions have return values[/b]



Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326134555&siteId=291194637