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.两者差异: