文档章节

存储过程

海贼爱音乐
 海贼爱音乐
发布于 2017/08/16 16:24
字数 228
阅读 4
收藏 0
  1. 存储过程
create or replace procedure hello(empid in number)
is
  pname varchar2(20);
  psal employees.salary%type;
begin
  select first_name,salary into pname,psal from employees where employee_id=empid;
  update employees set salary=salary+1000 where employee_id=empid;
  dbms_output.put_line('员工'||pname||'现在工资为'||(psal+1000));
end;

一般不在存储过程和函数中commit和rollback,而是在调用时commit。

begin
  hello(105);
  commit;
end;
  1. 调试

sys as sysdba 超级管理员登录
alter user hr identified by test account unlock 解锁hr账号并修改密码为test
grant debug connect session,debug any procedure to hr; 授权hr用户调试

  1. 存储函数
create or replace function hello2(empid in number)
return number
is
  psal employees.salary%type;
  pcomm employees.commission_pct%type;
begin
  select salary,commission_pct into psal,pcomm from employees where employee_id=empid;
  return psal*12+nvl(pcomm,0);
end;

调用

declare
  v_test number;
begin
  v_test:=hello2(104);
  dbms_output.put_line(v_test);
end;
  1. 异常(no_data_found、too_many_rows、value_error)
declare
pename emp.ename%type;
begin
  select ename into pename from emp where empno=666;
exception
  when no_data_found then dbms_output.put_line('没有找到');
  when others then dbms_output.put_line('其他');
end;

© 著作权归作者所有

共有 人打赏支持
海贼爱音乐
粉丝 1
博文 87
码字总数 22611
作品 0
广州
CEO

暂无文章

sed命令扩展使用操作

打印某行到某行之间的内容 假若文件test.txt的内容是: ertfff**[abcfd]123324444[rty]**fgfgf 怎么能截取 [abcfd]123324444[rty] 这一部分出来呢? 操作命令: 知道开始行和结...

野雪球
32分钟前
1
0
JVM内存笔记

Hotspot JVM 中的 Java 线程与原生操作系统线程有直接的映射关系。当线程本地存储、缓 冲区分配、同步对象、栈、程序计数器等准备好以后,就会创建一个操作系统原生线程。 Java 线程结束,原...

凌渡
38分钟前
1
0
284. Peeking Iterator

Description Tag: Design Difficulties: Medium Given an Iterator class interface with methods: next() and hasNext(), design and implement a PeekingIterator that support the pee......

52iSilence7
40分钟前
1
0
防止快速重复点击的两种思维

防止重复执行的两种思维 场景 下单时,提交按钮,因为网络卡顿或者手快重复点击,导致重复提交订单; 微博,更新个人状态或发表评论时,快速多次点击[发送]按钮,导致相同的信息发送多次. 解决思路 ...

黄威
今天
0
0
在windows环境下使用Virtualbox虚拟Debian系统来运行Docker

标题绕口。 我之前一直使用 Virtualbox 和 homestead 来运行我的 PHP 开发环境。最近决心开始尝试 DevOps,使得开发、部署容器化,来化解人为操作失误和环境不兼容等问题造成的各种损失。就打...

zgldh
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部