Oracle函数和存储过程

1.函数

CREATE OR REPLACE FUNCTION myfun(eno in emp.empno%TYPE, tmp in out emp.ename%type) RETURN varchar2 AS
BEGIN
  SELECT ename INTO tmp FROM emp WHERE empno = eno;
	return tmp;
END;

DECLARE 
tmp emp.ename%type;
l_tmp emp.ename%type;
BEGIN
tmp := '';
l_tmp := myfun(1, tmp);
DBMS_OUTPUT.put_line(tmp) ; 
DBMS_OUTPUT.put_line(l_tmp) ; 
END ;

2.存储过程

create or replace procedure get_test(tmp_id in test.id%type, tmp in out test.name%type) as
begin
select name into tmp from test where id = tmp_id;
end;

DECLARE 
tmp test.name%type;
BEGIN
tmp := '';
get_test(2, tmp);
DBMS_OUTPUT.put_line(tmp) ; 
END ;

3.两者差异:


你可能感兴趣的:(oracle,函数,存储)