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上不能跑起来,向前兼容。版本的兼容性做的不好。版本升级的时候要做到向前和向下兼容。



day70 12-存储过程和存储函数的更多相关文章
- Oracle03——游标、异常、存储过程、存储函数、触发器和Java代码访问Oracle对象
作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7476717.html 1.游标(光标)Cursor 在写java程序中有集合的概念,那么 ...
- oracle存储过程和存储函数&触发器
oracle存储过程和存储函数 指存储在数据库中供所有用户程序调用的子程序叫存储过程,存储函数 存储过程和存储函数的相同点:完成特定功能的程序 存储过程和存储函数的区别:是否用return语句返回值 ...
- 存储过程,存储函数(Oracle)
存储过程和存储函数 指存储在数据库中供所有用户程序调用的子程序叫存储过程.存储函数. 存储过程和存储函数的区别? 存储函数:可以通过return 语句返回函数值. 存储过程:不能 除此之外我们可以认为 ...
- MySQL数据库之存储过程与存储函数
1 引言 存储过程和存储函数类似于面向对象程序设计语言中的方法,可以简化代码,提高代码的重用性.本文主要介绍如何创建存储过程和存储函数,以及存储过程与函数的使用.修改.删除等操作. 2 存储过程与存储 ...
- 编程开发之--Oracle数据库--存储过程和存储函数(1)
1.存储过程和存储函数 描述:指存储在数据库中供所有用户程序调用的子程序叫做存储过程.存储函数 区别:存储函数可以通过return子句返回一个函数的值 (1)存储过程 语法:create [or re ...
- mysql存储过程和存储函数
mysql存储过程和存储函数 存数函数代码示例: DROP PROCEDURE IF EXISTS calc_ci_day_suc_rate; delimiter // CREATE FUNCTION ...
- mysql 存储过程和存储函数
14.1.1 创建存储过程 MySQL中,创建存储过程的基本形式如下: CREATE PROCEDURE sp_name ([proc_parameter[,...]]) [characteristi ...
- Oracle 存储过程以及存储函数
以下的一些例子是基于scott用户下的emp表的数据,一和二使用的均为in,out参数,最后一个综合练习使用了 in out参数 一.存储过程 1.创建无参的存储过程示例 ------ hello ...
- 编程开发之--Oracle数据库--存储过程和存储函数(2)
上一小结我们简单介绍了存储过程和存储函数,对存储过程和存储函数有了一个基本的了解,接下来介绍在java程序中如何调用我们创建的存储过程和存储函数 1.在应用程序中调用我们的存储过程 创建一个简单的Ja ...
- MySQL 存储过程和存储函数学习
#一.存储过程和存储函数的创建案例 CREATE PROCEDURE myprocedure(in a int,in b int ,OUT c INT) BEGIN set c=a+b; end; c ...
随机推荐
- CentOS 6.6 中 mysql_5.6 主从数据库配置
[mysql5.6 主从复制] 1.配置主从节点的服务配置文件 1.1.配置master节点 [mysqld] binlog-format=row log-bin=master-bin log-sla ...
- java从小白到架构师大牛必看书籍
一.基础类 1.<ThinkingJava>,入门第一位是建立正确的概念. 2.<Core Java>,我没系统读过,这本书更贴近实践,更多API的介绍,同样,更新也更频繁. ...
- windows7安装Scrapy
在Linux下安装Scrapy很容易,基本不会出现问题 pip install Scrapy 但是在Windows下经常会出现问题,首先还是尝试一下使用pip命令: pip install scrap ...
- 2018.7.19 AK22 续集
话说上次坏机检查没有找到问题,后来我们联合软件工程师一起分析原因 ------------------------ 在线调试: MCU在内部晶振模式下:初始化正常,功能函数正常,切换到外部晶振12M后 ...
- 机器学习敲门砖:任何人都能看懂的TensorFlow介绍
机器学习敲门砖:任何人都能看懂的TensorFlow介绍 http://www.jiqizhixin.com/article/1440
- 使用jsonp跨域调用百度js实现搜索框智能提示(转)
http://www.cnblogs.com/oppoic/p/baidu_auto_complete.html 项目中常常用到搜索,特别是导航类的网站.自己做关键字搜索不太现实,直接调用百度的是最好 ...
- MongoDB shell基本操作
shell命令操作语法和JavaScript很类似,其实控制台底层的查询语句都是用JavaScript脚本完成操作的.使用shell 命令,需要启动mongo.exe.mongodb百科 常用shel ...
- C#进阶之路(四):拉姆达
对于拉姆达,许多文章都讲过原理及如何使用,所以这篇文章我主要是摘录我学习过的文字,总结下我自己的学习心得. 什么是拉姆达表达式 "Lambda表达式"是一个匿名函数,是一种高效的类 ...
- CH5E02 [IOI1999]花店橱窗[暴力dp]
众所周知,这个人太菜了,所以她又来切水题了. 显然设计状态表示第$i$朵花放第$j$瓶中的最大价值.然后瞎转移一波是n三方的,加个前缀max变成n方就水过去了. 当然这题可以搜索剪枝的. 虐lyd书上 ...
- OSError: [Errno 22] Invalid argument: 'D:\x07ckup\test.txt'
使用with open("D:\backup\test.txt","rt") as f:报上面的错误,将上面的语句改成 with open(r"D:\ ...