为了账号安全,请及时绑定邮箱和手机立即绑定

Oracle存储过程和自定义函数

难度初级
时长 1小时33分
学习人数
综合评分9.83
104人评价 查看评价
9.9 内容实用
9.9 简洁易懂
9.7 逻辑清晰
  • https://img1.sycdn.imooc.com//5d0f97cd000176a403250261.jpg

    https://img1.sycdn.imooc.com//5d0f97cd000188aa01950224.jpg

    以不带参数的存储过程为例

    查看全部
  • 数据库对象:表、视图、索引、序列、同义词、存储过程、存储函数

                       完成不同的作用

    存储过程/函数:存储在数据库中供所有用户调用的子程序(PLSQL构成)

    相同点:完成特定功能的程序

    区别:是否用return语句返回值(存储函数有return返回值)

    查看全部
  • out参数中使用光标

    申明结构

    包头

    包体

    查看全部
  • 程序调用,指定返回值类型  OracleTypes.

    查看全部
  • java访问数据库

    查看全部
    0 采集 收起 来源:概述

    2019-05-19

  • 过程和函数都可以通过ot指定一个输出参数,

    查看全部
    0 采集 收起 来源:[Oracle] out参数

    2019-05-19

  • 存储函数方式

    不推荐远程调试

    reture number

    as

    begin

    return

    end

    预控 nvl(xx,o)


    查看全部
  • 带参数的存储过程

    输入参数 in   输出参数out

    在存储过程中可以卸commit和rollcax,但是存储过程作为子程序,一般不在其中写,调用时统一提交或回滚


    查看全部
  • 创建时检查同名过程  or repalce  可作为修改使用

    存储过程无返回值  存储函数无返回值

    编写好后运行编译

    两种执行方式  exec   和plcql 通过begin和end


    查看全部
  • ----注意:一般情况下,返回值只有一个,用存储函数;否则,当没有返回值,或者返回值有多个,则使用存储过程

    in和out参数(输入输出参数)

    ----out参数:查询某个员工的姓名 月薪和职位

    create or replace procedure queryempinform(eno in number,pename out varchar2,psal out number,pjob out varchar2)

    as

    begin

    ---得到该员工的姓名 月薪和职位

    select ename,empjob into pename,psal,pjob from emp where empno=eno;

    end;

    /


    输出参数可以用作返回值一样返回给调用的客户端


    查看全部
    0 采集 收起 来源:[Oracle] out参数

    2019-03-17

  • 存储函数

    函数为一命名的存储程序,可带参数,并返回一计算值。

    函数和过程的结构类似,但必须有一个return子句,用于返回函数值

    ---注意:当一个表达式包含null值,往往会导致得不到正确的结果,或者没有结果

        所以最好的做法是使用nvl函数将空值以0代替

    --查询某个员工的年收入

    create or replace function queryempincome(eno in number)

    return number

    as

     psal emp.sal%type;

     pcomm emp.comm%type;

    begin

     ---得到该员工的月薪和奖金

     select sal,comm into psal,pcomm from emp where empno=eno;

     

     --直接返回年收入

     return psal*12+nvl(pcomm,0);

    end;

    /


    查看全部
  • 带参数的存储过程

    举例:为指定的员工涨100元的工资,打印涨前和涨后的工资

    如果带参,需要指定是输入参数还是输出参数


    create or replace procedure raisesalary(eno number)

    as

     ---定义一个变量保存涨前的薪水

     psal emp.sal%type;

    begin

     ---得到员工涨前的薪水

     select sal into psal from emp where empno=eno;

     ---给该员工涨100

     update emp set sal=sal+100 where empno=eno;

     

     ---需不需要commit?

     ---注意:一般不在存储过程或者存储函数中 commit和rollback

     

     ---打印涨前和涨后的工资

     dbms_output.put_line('涨前:'||psal||'涨后:'||(psal+100));

    end;

    /


    一般在调用存储过程或者函数的时候再commit,这样可以保证所有执行是在同一个事物中进行的

    如:

    begin

    raisesalary(7839);

    raisesalary(7566);

    commit;

    end;

    /


    查看全部
  • 创建和使用存储过程

    用CREATE PROCEDURE 命令建立存储过程和存储函数。

    语法:

    create [or replace] PROCEDURE 过程名(参数列表) AS 

        plsql子程序体;

    /*

    调用存储过程有两种方式:

    1.exec sayHelloworld

    2.调用两次这个存储过程

    begin

    sayHelloworld();

    sayHelloworld();

    end;

    /

    */

    create or replace procedure sayHelloworld

    as ---相当于declare说明部分,如果没有,可以不写

    begin

    dbms_output.put_line('Hello World');

    end;

    /


    end;

    /


    查看全部
  • 数据库对象

    存储过程、存储函数、表、视图、索引、序列、同义词

    存储过程和存储函数

    指存储在数据库中供所有程序调用的子程序叫存储过程、存储函数

        存储过程和存储函数的相同点:完成特定功能的程序

    存储过程和存储函数的区别:是否用return语句返回值,存储函数没有return返回语句

    查看全部
  • 1.java程序调用存储函数: {call 存储过程名称 (args1,args2。。。。)} 2.callableStatement call: call.prepareCall(sql) call.setInt(1,value) call.registerOutParameter(2,OracleTypes.NUMBER) call.getString(1,变量名)
    查看全部

举报

0/150
提交
取消
课程须知
小伙伴们,学习本门课程需要具备PL/SQL基础,可以移步《Oracle数据库开发必备利器之PL/SQL基础》课程。除此以外,在课程中涉及到存储过程和存储函数在Java项目中的应用,因此需要小伙伴们具备Java基础并熟悉JDBC。
老师告诉你能学到什么?
1、存储过程和存储函数的创建和调用 2、存储过程和存储函数在Java项目中的应用 3、如何在应用程序中访问包下的存储过程

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!