当前位置:网站首页>存储过程试炼1--爱的初相识
存储过程试炼1--爱的初相识
2022-07-27 05:11:00 【神芷迦蓝寺】
##### 写在前面,存储过程是一项比较老的sql语言了,目前网上关于此的资料非常多,我也是靠他们来学会的(毕竟达到我这个level的,一般学一门新语言只要两个小时),##### 由于时间沉淀不足,难免有遗漏和错误之处,因此本存储过程系列文章不做普及之用,只是用来我自己的笔记记录
##### 比心,终于向存储过程低头
我做大数据多年,本身是很讨厌存储过程的,因为他存在着迁移难,可复制性不高,开发难度大,无集群等等不好的点。但是阴差阳错,我现在在做的项目正好是需要用到Oracle的存储过程来实现数据的计算和加载,一件事物好坏均会具有,只有合不合适之分,于是重新审视下存储过程,发现他还是有下面几个优点的(跟我目前必须要做这个工作没关系,是的,我是诚心!)
1.执行速度快——存储过程只在创建时进行编译,以后每次执行存储过程都不需要重新编译
2.减少网通量——当对数据库进行复杂操作时,如对多个表进行insert、update可集合事务批量一起运行
3.提高复用性——存储过程可以重复使用,提高了可重用性
4.可维护性高——更新存储过程通常比更改、测试以及重新部署程序集需要较少的时间和精力。
5.高安全可靠——数据库本身的权限机制决定了他的安全性
那么是存储过程呢?
简单来说就是把多个insert等DML,drop等DDL语句结合在一起执行的一个预编译集合,与函数作用类似,但也存在着含义,执行方式,使用条件等不同,比如存储过程就可以调用引用其他存储过程,但函数就只能引用其他的返回集。
定义说过了,我们现在来写一个最简单的存储过程吧,就是我们常用的hello world
-- 建立存储过程
CREATE OR REPLACE PROCEDURE testMyProcedure AS
BEGIN
DBMS_OUTPUT.put_line('Hello World');
END;
-- 运行存储过程,也可以是EXECUTE testMyProcedure;
BEGIN
testMyProcedure;
END;可以通过sqlplus登录执行execute xxx来运行,也可以在IDE比如pl/sql developer里运行begin xxx; end;
OK,初相识到此为止,下一篇我们将建立测试表测试存储过程介绍基本架构https://mochou.blog.csdn.net/article/details/116612107
边栏推荐
猜你喜欢
随机推荐
Native token generation encryption and decryption
The difference between for... Of and for... In JS
binglog备份数据
JS中forEach和map方法有什么区别
[CISCN2019 华东南赛区]Web11 1
基于PG-Oracle和MySQL的三库通用sql代码开发
「PHP基础知识」布尔型的使用
去哪家期货公司如何开户?
How to judge whether a property belongs to an instance object or inherits from a constructor in JS
「PHP基础知识」定界符的使用
Prototype and prototype chain in JS
解决MySQL JDBC数据批量插入慢的问题
权限展示-左侧列表动态化
XSS知识点
What is the difference between foreach and map methods in JS
一本通1329 细胞(广度优先搜索)
期货开户之前要先谈好手续费
刷脸支付用户主要优势是智能化程度高
Exit login and JSX display
期货开户怎么选择好的期货公司 ?





![[网鼎杯 2020 朱雀组]Nmap 1两种解法](/img/fa/b1349cb42b5768b7510217239ba73a.png)


