jsp网站购物车怎么做,怎么做淘宝网站赚钱技巧,贵州便宜网站推广优化电话,做前端网站考虑兼容分辨率文章思维导图一. 存储过程和存储函数的定义定义#xff1a;存储在数据库中#xff0c;供所有用户程序调用的子程序叫做存储过程/存储函数。复杂点的解释#xff1a;存储过程(Stored Procedure)#xff0c;就是一组用于完成特定数据库功能的SQL 语句集#xff0c;该SQL语句…文章思维导图一. 存储过程和存储函数的定义定义存储在数据库中供所有用户程序调用的子程序叫做存储过程/存储函数。复杂点的解释存储过程(Stored Procedure)就是一组用于完成特定数据库功能的SQL 语句集该SQL语句集经过编译后存储在数据库系统中。在使用时候用户通过指定已经定义的存储过程名字并给出相应的存储过程参数来调用并执行它从而完成一个或一系列的数据库操作。区别是否可以通过return返回函数值。存储函数可以通过return返回函数值而存储过程不可以。注意由于通过out参数存储过程也可以返回函数值所以存储过程和存储函数已经没有太大的区别了。而存储函数仍然存在是由于oracle不断升级需要实现向下兼容所以存储函数就一直存留着。二. 存储过程1. 创建和使用存储过程用create procedure命令建立存储过程语法如下create [or replace] procedure 过程名(参数列表)as -- as不可以省略PLSQL子程序体;注意事项1 存储过程或者存储函数只能创建或者替换。2 参数可以带也可以不带。3 as相当于PLSQL语句中的declare用来声明变量、游标等但是不可以省略。2. 入门案例:(1)不带参数的存储过程:不用带括号create or replace procedure sayHelloasbegindbms_output.put_line(HelloWorld);end;/调用方式1 使用executeexec是sqlplus命令只能在sqlplus中使用使用时exec可以直接跟过程名(可以省略括号)控制台执行示例:SQL set serveroutput on;SQL exec sayHello;2 使用call使用call时要带上括号;call为SQL命令使用时对场景没有限制。控制台执行示例:SQL set serveroutput on;SQL call sayHello();3 使用PLSQL语句调用控制台执行示例:SQL set serveroutput on;SQL beginsayHello;end;/(2)带参数的存储过程:给指定的员工涨100元工资,并且打印涨前和涨后的薪水:create or replace procedure addSal(pempno in emp.empno%type)aspename emp.ename%type;beforesal emp.sal%type;aftersal emp.sal%type;beginselect ename,sal into pename,beforesal from emp where empnopempno;aftersal:beforesal100;update emp set salaftersal where empnopempno;dbms_output.put_line(姓名: ||pename|| 涨前工资:||beforesal||涨后工资:||aftersal);end;/执行代码截图** 注意事项**1 要说明参数是输入参数(in)还是输出参数(out)2 为保证调用多个存储过程中处在同一个事务中所以一般不在存储过程或者存储函数中commit或rollback3. 调试存储过程:SQL Developer 调试存储过程** 注意事项**(1) oracle数据库和PLSQL工具都是放在同一个机器上(2) 在开启调试时可能会报出权限不够的错误信息,通过下面方式进行授权授权三. 存储函数1. 存储函数:函数(Function)为一命名的存储程序,可带参数,并返回一计算值.函数和过程的结构类似,但必须有一个return子句,用于返回函数值.2. 创建存储函数的语法:create [or replace] function 函数名(参数列表)return 函数值类型asPLSQL子程序体;注意事项:(1) 与存储过程注意事项类似,不同的是,必须有个返回值;(2) 参数列表可以有,也可以没有.当没有时,函数名后面不要带括号.create or replace function queryempannal(pempno in number)return numberaspsal emp.sal%type;pcomm emp.comm%type;beginselect sal,comm into psal,pcomm from emp where empnopempno;return psal*12nvl(pcomm,0);end;四. in和out参数1.概述(1) 一般来讲,存储过程和存储函数的区别在于存储函数可以有一个返回值;而存储过程没有返回值.(2) 过程和函数都可以通过out指定一个或多个输出参数.我们可以利用out参数,在过程和函数中实现返回多个值.a. 存储过程和存储函数都可以有out参数;b. 存储过程和存储函数都可以有多个out参数;c. 存储过程可以通过out参数来实现返回值;(3) 什么时候用存储过程/存储函数?原则:如果只有一个返回值,用存储函数;否则,就用存储过程.create or replace procedure queryempinform(eno in number,pename out varchar2,psal out number,pjob out varchar2 )asbeginselect ename,sal,job into pename,psal,pjob from emp where empnoeno;end;/