- 1
- 0
- 约1.2万字
- 约 6页
- 2017-06-13 发布于河南
- 举报
Orale第14课
第14章 存储过程和函数
一. 存储过程
1定义:存储过程就是命了名的PL/SQL块,可以有零个或多个参数,没有返回值,以编译后的形式存放在数据库中,然后由开发语言调用或者PL/SQL块中调用。
2.存储过程分类
无参的存储过程和有参的存储过程
二.无参存储过程
语法:
create [or replace] procedure 存储过程名
is | as
[本地变量声明]
begin
执行语句部分
[exception]
错误处理部分
end [procedure_name];
例:
create or replace procedure p_student
as
cursor cur is select sname from student where ssex=男;
begin
for i in cur loop
dbms_output.put_line(i.sname);
end loop;
end;
/
注意:就是把不同的匿名块中declare换成create or replace procedure p_student as
其余不变。
2.调用无参的存储过程
Execute 存储过程名(或简写exec存储过程名)
3.查看一下存储过程的错误
Show error;
4.数字字典
User_procedures;
Select * from user_procedures;
5.删除存储过程
Drop procedure 存储过程名;
三.有参存储过程
语法:
例:
Create or replace procedure
p_student(v_sno in student.sno%type,v_sname out student.sname%type) 此处无分号
as
begin
select sname into v_sname from student where sno=v_sno;
end;
/
注意:有参的存储过程不能简单的使用execute执行,必须利用程序来调用(java,PL/SQL)
执行方法1:
declare
v_sname student.sname%type;
begin
p_student(2000012,v_sname);
dbms_output.put_line(v_sname);
end;
/
执行方法2:测试方法
Var n char(8);
Exec p_student(‘2000011’,:
Print n;
四.函数
语法:create or replace function 函数名(参数列表) return 返回值类型
As
[本地变量声明]
begin
执行语句部分
[exception]
错误处理部分
end;
例:
create or replace function f1(n number) return number
as
v_result number;
begin
v_result:=n*n;
return v_result;
end;
/
注意:函数必须有返回值,参数列表可有可无
题1:写一个函数,输入学号,返回姓名,学深表
Create or replace function f2(v_sno student.sno%type) return student.sname%type
as
v_sname student.sname%type;
begin
select sname into v_sname from student where sno=v_sno;
return v_sname;
end;
/
题2:写一个函数,输入员工编号,求员工的年薪(salary*12+salary*commission_pct*12)
create or replace function f3(v_eno employees.employee_id%type) return number
as
v_salary number;
begin
select salary*12+salary*12*nvl(commission_pct,0) into v_salary from employees
where employee_id=v_eno;
return v_salary;
end;
/
2.数据字典
User_source
Select * from user_source;
3.删除函数
Drop function 函数名称;
过程
函数
完成某些特定的任务或者工作
完成复杂的计算
作为一个独立PL/SQL语句来执行
不能独立执行,必须作为表达式的一部分来调用
程序头部使用PROCEDURE说明
程序
您可能关注的文档
- Iphne手机企业邮箱设置 九步轻松搞定.doc
- ita office2007模拟.doc
- J2E领域的一些技术框架结构图.doc
- JAV JDK 安装及环境变量配置.doc
- Jav+net笔试.doc
- Jav07-08试卷.doc
- javscript图片动态显示.doc
- Jav代码编写规范.ppt
- jav修饰符.doc
- JAV初高级阶段笔记.doc
- 2026及未来5年中国电磁铁行业市场发展监测及投资战略咨询报告.docx
- 2026及未来5年中国建筑工程机械行业市场发展监测及投资战略规划报告.docx
- 2026及未来5年中国硫化镍行业市场调研分析及投资战略规划报告.docx
- 2026及未来5年中国烷化剂市场运营态势及发展前景预测报告.docx
- 2026年涤纶细旦长丝项目可行性研究报告(市场数据调查、监测研究).docx
- 2026年弓型虫抗体试剂项目可行性研究报告(市场数据调查、监测研究).docx
- 2026年拖链系统用高柔性数据传输电缆项目可行性研究报告(市场数据调查、监测研究).docx
- 2025年中国水晶圆盘市场调查研究报告.docx
- 2025年中国长网双辊挤浆机市场调查研究报告.docx
- 2026年及未来5年内中国液体氩气行业投资前景及策略咨询研究报告.docx
原创力文档

文档评论(0)