可能大家听过较多的就是SQL,SQL就是我们日常接触的语句操作,比如日常的增删改查。那PL/SQL是什么?PL/SQL就是一个能容纳多种结构写法的编程语言。
PL/SQL有什么用?能容纳什么?看完它的结构,感觉和存储过程的区别又是什么?其实我觉得很多开发者都有用过PL/SQL语言,只是较少人都带着意识去认识这个。
PL/SQL你可以理解为一种SQL+过程编程的语言,SQL是一种目的,过程编程是一种包含操作判断等的一系列形象。加起来就是带着更加复杂业务、更多判断方向的目的编程。
其用于做什么?很简单的,复杂业务、容许各种结构带入的编程语言。复杂结构里面可能会有存储过程、触发器、函数、程序包各种各样。
可能很多人不懂要这么多复杂结构做什么?当应用情景是复杂的调用调用再调用,你就知道这个的重要性。
举例子举例子!!
比如小明是个学生,小明的目的是买本书。那么对于小明来说,小明需要先有买书的想法,比如数学学得不好,就想买数学教材书,但是数学教材书有很多种啊,偏题目讲解类的,偏理论类的。如果小明觉得自己的往常的考试中,选择题理论部分扣了1/3,解题类扣了1/3,那么小明得先选择交通工具来到地图上选定的多家书店中的一家,然后小明想,我要买哪类题呢,虽然理论和解题类都扣的差不多,但是我只想买一本的话,那么我就要衡量这个书店哪本书写得好,我更需要理论的还是解题的,老师课堂上会更多讲解哪些,我就买另一种。好啦,小明买书要钱,得选择在家的家长,爸爸或妈妈,爸爸在家的话可能给的钱多一点,妈妈在家的话可能会比较节约一点。妈妈给多少?爸爸给多少?多少钱够我在书店消费多少?等等之类的问题,这就是复杂的业务!
ok,从例子中,我们要完成:小明买本数学教材书 的目的。书分多种,它可以是一个被选择的变量,比如理论书是1,讲解题类书籍是0。小明衡量理论书籍和解题类书籍哪个更被需要,可以是一个评分函数,找爸爸还是找妈妈,这也可以是一个常量,出门就要计算口袋里的余额,可以是一个触发器。判断最终买什么书,可以是一个累加得分的存储过程。
这就是PL/SQL的伟大之处。
看看其结构。
CREATE OR REPLACE PROCEDURE calculate_sum (
a IN NUMBER,
b IN NUMBER,
sum OUT NUMBER
)
IS
BEGIN
sum := a + b;
END;
/
-- 调用存储过程
DECLARE
num1 NUMBER := 5;
num2 NUMBER := 10;
result NUMBER;
BEGIN
calculate_sum(num1, num2, result);
DBMS_OUTPUT.PUT_LINE('The sum is: ' || result);
END;
/
以上例子是一个PL/SQL的例子。里面存储有变量,有存储过程,这个比较简单,复杂的会有程序包、有trigger等。今天简单聊聊这些,希望大家对PL/SQL有个简单的了解。
原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/80976.html