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

Oracle存储过程和自定义函数

难度初级
时长 1小时33分
学习人数
综合评分9.83
104人评价 查看评价
9.9 内容实用
9.9 简洁易懂
9.7 逻辑清晰
  • 还是不错的
    查看全部
  • 用create procedure命令建立存储过程和存储函数。语法:create [or replace] procedure 过程名(参数列表) as PLSQL 子程序体;
    查看全部
  • 存储在数据库中供所有用户程序调用的子程序叫存储过程、存储函数.存储过程和存储函数相同点是:完成特定功能的程序。区别:是否用return语句返回值
    查看全部
  • 手机运行慕课网有问题,求帮助!
    查看全部
  • 存储过程调用方式:

    1、exec pro_name();

    2、 begin

                pro_name();

           end;

            /

    查看全部
  • 存储过程不能通过return返回值,存储函数可以
    查看全部
  • 创建和使用带参数的存储过程

    举例:为指定员工,涨100块钱的工资;并且打印涨前和涨后的薪水。

    注意:存储过程和存储函数的参数需要标明该参数是输入参数还是输出参数。这里需要的是输入参数,也就是需要输入员工号。

    注意:这里已经对数据库记录做出了更改,一般不在存储过程中提交事物,因为这样不能保证在调用存储过程的代码在一个事物中。也就是哪里调用存储过程,哪里提交事物。

    证明:oracle中执行完插入,需要commit,否则查看不到。这是oracle数据库的隔离级别导致的。

    带参数存储过程创建:

    http://img3.sycdn.imooc.com/5dfeea08000169c806660538.jpg

    带参数存储过程调用:像如图中这种情况,就可以保证这两个操作在同一事物中。

    http://img3.sycdn.imooc.com/5dfeea4e0001d65d07630312.jpg

    注意:存储过程的参数声明时,只能声明类型,不可以指定长度。

    http://img1.sycdn.imooc.com//5dfef5020001f22614840608.jpg


    查看全部
  • 1.Sqlplus 用户名/密码@IP地址:1521/orcl 2.host cls :进入sql编辑界面 3.存储过程是对象,表、试图、索引、序列、同义词等都是对象 4.语法:create or replace procedure 名称 as begin dbms_output.put_line(“Hello world!”) end;/ 4.两种执行函数或者过程的方式: 「1」exe 存储过程/函数(); 「2」begin 存储过程名/函数() end;/ 5.存储过程和存储函数的区别: 函数:可以return 过程:不可以return
    查看全部
  • package demo.utils;


    import java.sql.Connection;

    import java.sql.DriverManager;

    import java.sql.ResultSet;

    import java.sql.SQLException;

    import java.sql.Statement;


    public class JDBCUtils {

    private static String driver = "oracle.jdbc.OracleDriver";

    private static String url = "jdbc:oracle:thin:@localhost:1521:orcl";

    private static String user = "scott";

    private static String password = "tiger";

    static {

    try {

    Class.forName(driver);

    } catch (ClassNotFoundException e) {

    throw new ExceptionInInitializerError(e);

    }

    }

    public static Connection getConnection() {

    try {

    return DriverManager.getConnection(url,user,password);

    } catch (SQLException e) {

    e.printStackTrace();

    }

    return null;

    }

    public static void release(Connection conn,Statement st,ResultSet rs) {

    if(rs != null) {

    try {

    rs.close();

    } catch (SQLException e) {

    e.printStackTrace();

    }finally {

    rs = null;

    }

    }

    if(st != null) {

    try {

    st.close();

    } catch (SQLException e) {

    e.printStackTrace();

    }finally {

    st = null;

    }

    }

    if(conn != null) {

    try {

    conn.close();

    } catch (SQLException e) {

    e.printStackTrace();

    }finally {

    conn = null;

    }

    }

    }

    }


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

    2018-10-06

  • 包头:声明的所有方法,包括存储函数、存储方法

     CREATE OR REPLACE PACKAGE MYPACKAGE AS     

    type empcursor is ref cursor;   

     procedure queryEmpList(dno in number,empList out empcursor); END MYPACKAGE;

     

    包体(需要实现包头中声明的所有方法,包括存储函数、存储方法):

     CREATE OR REPLACE PACKAGE BODY MYPACKAGE AS 

      procedure queryEmpList(dno in number,empList out empcursor) AS  

     BEGIN     

     open empList for select * from emp where deptno=dno;  

     END queryEmpList;

    END MYPACKAGE; 

      -- 使用desc查看程序包的结构

     desc MYPACKAGE

    查看全部
  • 1)  函数的定义 函数(Function)为一个命名的存储程序,可带参数,并返回一个计算值。函数和过程的结构类似,但必须有return 子句,用于返回函数值。

    2) 存储函数必须使用return 

    3) 如果一个表达式中含有空值,那么这个表达式就是空值,所以要用到NVL(comm,0)域空函数

    注意:在执行语法的过程中,如果有字段的值出现为空,需要用置空函数把转为0,再计算 nvl(传入参数,0)

    create or replace FUNCTION 函数名字

    return 返回值

    AS

    plsql块




    查看全部
  • --创建一个带参数的存储过程:
    --给指定的员工涨100块钱的工资,并且打印涨前和涨后的薪水
    /*
    如何调用
    begin
    raisesalary(7839);
    raisesalary(7566);
    commit;
    end;
    /
    */
    create or replace procedure raisesalary(eno in 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;
     
     --打印
     dbms_output.put_line('涨前:'||psal||' 涨后:'||(psal+100));
    
    end;
    /


    查看全部
  • 一般不再存储过程或存储函数中提交或回滚(可以这么做但是通常不这样),而是在调用处做
    查看全部
  • CallableStatement这个接口中没有getCursor方法,那么如何获取查询到的list结果呢? 是OracleCallableStatement实现了这个接口并扩展了getCursor方法,所以要把现在的call强制转换为:OracleCallableStatement才能调用getCursor方法
    查看全部
  • --查询某个员工的年收入 create or replace function querymeth(emo in number) return number --返回年收入 as psal emp.sal%type; pcomm emp.comm%type; begin select sal , comm into psal,pcomm from emp where empno=emo; --直接返回年收入 return psal*12+nvl(pcomm,0);--nvl避免为空的时候,自动是0,避免报错 end; /
    查看全部

举报

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

微信扫码,参与3人拼团

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

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