set serveroutput on;


存储过程 - 基础存储过程,带传入参数



--①存储过程 - 基础存储过程,带传入参数
create or replace procedure pro_test1(v_id in number)
is
  v_emprow emp%rowtype;
begin
  select * into v_emprow from emp where empno = v_id;
  dbms_output.put_line(v_emprow.ename || '=' || v_emprow.sal);
end;
execute pro_test1(7521);


存储过程 - 基础存储过程,带传入参数和返回参数


--②存储过程 - 基础存储过程,带传入参数和返回参数
create or replace procedure pro_test2(v_id in number,v_name out varchar2)
is
begin
  select ename into v_name from emp where empno = v_id;
end;
--在PL/SQL中执行
declare
  v_name emp.ename%type;
begin
  pro_test2(7566,v_name);
  dbms_output.put_line(v_name);
end;


函数 - 基础函数Hello Wordld



--③函数 - 基础函数Hello Wordld
create or replace function fun_test1
return varchar2
is
begin
  return 'hello world';
end;
select fun_test1() from dual;


函数 - 基础函数,传入数字参数,返回两倍值


--④函数 - 基础函数,传入数字参数,返回两倍值
create or replace function fun_test2(v_sal number)
return number
is
begin
  return v_sal * 2;
end;
select ename,fun_test2(sal) sal from emp where empno > 7900;


触发器 - 基础触发器



--⑤触发器 - 基础触发器
create or replace trigger trig_empsal
after update of sal on emp
for each row
when (new.sal > old.sal)
declare
  v_chae emp.sal%type;
begin
  v_chae := :new.sal-:old.sal;
  dbms_output.put_line('涨工资啦!涨了 '||v_chae);
end;
update emp set sal=3000 where empno in (7521,7566)






点赞(0) 打赏

Comment list 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部