• day70 12-存储过程和存储函数


    什么是相关子查询?

    这是一个子查询,子查询本身又是一个多表查询。where不能用组函数,但是可以用字符函数instr()。除了order by排序没有考,查询语句的所有内容都考了。这个题有点难度。


    今天下午新的内容:存储过程,函数和触发器。这三个也是数据库的对象。一共要学习十个数据库的对象:表,视图,序列,索引和同义词。今天下午学五个:存储过程,存储函数,触发器,包和包体。经常用到这十个数据库的对象。

    在Java中不能直接调用PLSQL程序,实际上它调用的是存储过程和存储函数。存储过程和存储函数是由PLSQL语言写的,从而这样来调我们的PLSQL。

    存储过程不能通过return语句返回一个值,存储函数可以通过return语句返回一个值。除此之外,可以认为存储过程和存储函数是一样的。

    下午的重点不是PLSQL,下午的重点是如何用PLSQL创建几个数据库的对象。

    AS相当于PLSQL程序的declare,如果没有声明或者是说明部分,declare可以不写。

    尽管AS相当于是declare,但是它不可以省略。



     查看程序包的时候。IN是输入参数,OUT是输出参数。


    调用存储过程的程序才提交事务,保证了所有的操作是同一个事务。


     


    oracle sql developer可以编写程序,也可以调试和运行程序。不建议远程调试。需要指定调试的端口才可以进行调试。建议把oracle sql developer拷贝到数据库所在的服务器上。

    本机调试就比较方便。

    用系统管理员进行授权,授权用户SCOTT调试存储过程。

     

    卧槽,调试也是会改变数据的喔。

    调试就是把这个存储过程执行一遍。

    编译一次不允许重复编译存储过程。


    存储函数必须有一个return语句返回函数的值。

    存储函数可以有一个返回值。存储过程没有。


     


    当有了out参数,存储过程和存储函数,哪一个就可以不要了?

    存储函数就可以不要了。存储过程可以有返回值也可以没有返回值。存储函数完全可以用带out参数的存储过程来替代。为什么oracle依然保留了存储函数?多余了可以不要了,不支持了。不可以。因为实际上这个问题不是一个技术的问题,是一个历史问题。oracle最早的版本有存储过程和存储函数,后来随着版本的升级,向下兼容,新的版本要兼容老的版本。如果新的版本不支持存储函数,老的版本有存储函数就用不起来了。为了做到向前和向下兼容。


    Hadoop版本的兼容性做的不好,Hadoop1.0上做了一个系统在Hadoop2.0上不能跑起来,向前兼容。版本的兼容性做的不好。版本升级的时候要做到向前和向下兼容。


  • 相关阅读:
    构造函数+this关键字+super关键字
    封装
    数组+方法
    流程控制语句
    java运算符+引用数据类型
    java的基础安装
    mysql数据库连接
    mysql数据库约束
    mysql数据库
    练习010:按奇偶排序数组
  • 原文地址:https://www.cnblogs.com/ZHONGZHENHUA/p/6666225.html
Copyright © 2020-2023  润新知