存储过程和函数的区别
存储过程和函数的目的是为了可重复地执行操作数据库的sql语句的集合。
区别可分在写法 和 调用 上。
写法上:存储过程的参数列表可以有输入参数、输出参数、可输入输出的参数;
函数的参数列表只有输入参数,并且有return<返回值类型,无长度说明>。
返回值上:
存储过程的返回值可以有多个值;
函数的返回值只有一个值。
调用方式上:
存储过程的调用方式有:
- 1)exec<过程名>;
- 2 ) excute<过程名>;
- 3 )在PL/SQL语句块中直接调用。
函数的调用方式有:
在PL/SQL语句块中直接调用。
具体分为:
------调用FUNCTION add_three_numbers
------1.位置表示法调用函数
BEGIN
dbms_output.put_line(add_three_numbers(3,4,5));
END;
------2.命名表示法调用函数
BEGIN
dbms_output.put_line(add_three_numbers(b=>3,a=>4,c=>5));
END;
------3.混合使用位置表示法和命名表示法调用函数
BEGIN
dbms_output.put_line(add_three_numbers(3,a=>4,c=>5));
END;
------4.排除表示法
BEGIN
dbms_output.put_line(add_three_numbers(12,c=>5));
END;
------5.sql调用表示法
SELECT add_three_number(3,a=>4,c=>5) FROM DUAL;