Oracle存储过程、包详解


1.pl/sql块介绍


1.1、只包括执行部分的pl/sql块

SQL>set serveroutput on --打开输出选项

begin /执行部分——要执行的pl/sql语句和sql语句/

dbms_output.put_line(‘hello’);

end;

/

/dbms_output是oracle所提供的包(类似java的开发包),该包包含一些过程,put_line就是dbms_output包的一个过程/

包含定义部分和执行部分的pl/sql块

1.2、包含定义部分和执行部分的pl/sql块

SQL>declare

v_ename varchar2(5); --定义字符串变量

begin

select ename into v_ename from emp where empno=&aa;

dbms_output.put_line(‘雇员名:’||v_ename);

end;

/

1.3、 包含定义部分,执行部分和例外处理部分的pl/sql块

SQL>declare

–定义变量

v_ename varchar2(5);

v_sal number(7,2);

begin

–执行部分

select ename,sal into v_ename,v_sal from emp where empno=&aa;

–在控制台显示用户名

dbms_output.put_line(‘用户名是:’||v_ename||’ 工资:'||v_sal);

–异常处理

exception

when no_data_found then

dbms_output.put_line(‘朋友,你的编号输入有误!’);

end;

/

2.pl/sql分类


2.1、过程

SQL>create procedure sp_pro(spName varchar2, newSal number) is

begin

–执行部分,根据用户名去修改工资

update emp set sal=newSal where ename=spName;

end;

/

SQL>exec sp_pro1(‘SCOTT’,4556); --调用

2.2、函数

–输入雇员的姓名,返回该雇员的年薪

SQL>create function annual_incomec(name varchar2)

return number is

annual_salazy number(7,2);

begin

–执行部分

select sal*12+nvl(comm, 0) into annual_salazy from emp where ename=n

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值