- 5
- 0
- 约2.78千字
- 约 45页
- 2017-08-10 发布于河南
- 举报
13-14-2 第三篇 存储过程上机试验课件
第三篇 存储过程和函数;第三篇 存储过程和触发器;第三篇 存储过程procedure(p174);存储过程的创建;参数模式
IN参数类型
OUT参数类型
IN OUT参数类型
;参数模式
IN (默认参数类型):表示此参数接受过程外传来的值。
当过程被调用时,实参值被传递给过程。
在过程内,该参数起常数作用,可读不可写。
调用结束,实参值不变。
主调程序中:
p1(v_1,v_2);
; OUT参数:表示此参数将在过程中被赋值,并传递到过程体外。
当过程被调用时,实参事先定义,参数传递时实参值被忽略。
在过程内,该参数起未初始化的变量作用,值为NULL。
过程内,该参数可读可写。 调用结束,形参值赋给实参值。
主调程序中:
p1(v_1,v_2);
注意: v2需要在主调程序中事先declare
;IN OUT参数模式表示此参数同时具备IN和OUT参数型的特性。
当过程被调用时,实参值被传递给过程。
在过程内,该参数起已初始化变量作用
过程内,该参数可读可写。调用结束,形参赋给实参。
; 例1:创建一存储过程update_emp,该过程用于将emp表中empno为7876的员工姓名修改为candy
create or replace procedure update_emp
as
begin
update scott.emp set ename=candy where empno=7876;
end update_emp;;过程创建好后,其过程体中的内容并没有被执行,仅仅是被编译,调用该过程才可执行它。
调用过程有两种方式
Sql*plus方式:
程序块方式
;存储过程的调用p174;存储过程的创建和执行;第三篇 存储过程的创建和执行;执行procedure count_grade
declare
person_n number(3);
begin
count_grade(计算机,person_n);
dbms_output.put_line(person_n);
end;
注意:person_n参数模式为out,需要先定义,IN 参数时需要赋初值
;第三篇 存储过程的创建和执行;6.1.1 存储过程的创建和执行;对于存储过程,如果希望返回多个值,可以使用OUT或IN OUT模式参数来实现。
如果需要返回一个值可以通过函数调用实现。
;例 5: 创建一个存储过程,以部门号为参数,返回该部门的人数和最高工资。
CREATE OR REPLACE PROCEDURE return_deptinfo(
p_deptno IN scott.emp.deptno%TYPE,
p_avgsal OUT scott.emp.sal%TYPE,
p_count OUT scott.emp.sal%TYPE)
AS;BEGIN
SELECT avg(sal),count(*) INTO p_avgsal,p_count
FROM scott.emp
WHERE deptno=p_deptno;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE(The department don’t exists!);
END return_deptinfo; ; 存储过程的执行
declare
p_avgsal scott.emp.sal%TYPE;
p_count scott.emp.sal%TYPE;
begin
return_deptinfo(20,p_avgsal,p_count);
dbms_output.put_line(p_avgsal|| ||p_count);
end; ;
补充:创建一个存储过程,以部门号为该存储过程的in类型参数,查询该部门的平均工资,并输出该部门中比平均工资高的员工号、员工名。(for 循环遍历 游标)
CREATE OR REPLACE PROCEDURE show_emp(
p_deptno emp.deptno%TYPE)
AS
v_sal emp.sal%TYPE;
BEGIN
SELECT avg(sal) INTO v_sal FROM emp WHERE deptno=p_deptno;
DBMS_OUTPUT.PUT_LINE(p_deptno|| ||average salary is:||v_sal);
FOR v_emp IN (SELECT * FROM emp WHERE deptno=p_deptno AND salv_sal) LOOP
DBMS_OUTPUT.PUT_
您可能关注的文档
- oracle_数据库维护.docx
- oracle 备份设计文档(网上).docx
- 1201级国商班会课件.ppt
- 13-matlab 结构数组课件.ppt
- 13选用、变换句式课件.ppt
- 14届高一语文 《诗经》二首课件.ppt
- 120个文言实词1课件.ppt
- 14廉颇蔺相如列传3教学用课件.ppt
- 14届高一语文《鸿门宴》4课件.ppt
- 150501诗歌那么美,我们一起看zhong课件.ppt
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
原创力文档

文档评论(0)