--过程
(1)、过程语法
Oracle提供参数三种模式:
in:接受一个参数,在存储过程里使用。
这种参数只做接收,它在存储过程里是不能改的。如果改会报错。
out:负责输出,负责把值从过程里输出到过程外面。
调存储过程,你必须传变量给它。
in out:又要传进来,又要传出去,
你同样必须传变量给它。
这三种参数与Java中方法参数模式是基本一样的。
你们平实用的都是IN模式的,省掉IN就是IN模式。
当需要返回值时,你的参数还能带out 与
IN OUT模式。
--创建存储过程
--括号里可以是IN的传入参数和OUT传出参数或者IN OUT传进又传出的参数
create or replace procedure p (eno in number)
is
--%type 把定义的变量类型设置跟ename的类型一样。
empname ename%type;
begin
select ename into empname from emp where
empno=eno;
dbms_output.put_line('编号为'||eno||'的雇员的姓名是:'||empname);
end p;
--执行存储过程
execute p(7369);
(2)、过程调用
在数据库中调用execute,只能执行不带参数与带IN参数的存储过程。
语法:exec 存储过程名。
其他的必须用语句块,因为必须传变量。
主:过程与函数的区别,过程可以有多个返回值,而函数只能有一个返回值
(1)、过程语法
Oracle提供参数三种模式:
in:接受一个参数,在存储过程里使用。
这种参数只做接收,它在存储过程里是不能改的。如果改会报错。
out:负责输出,负责把值从过程里输出到过程外面。
调存储过程,你必须传变量给它。
in out:又要传进来,又要传出去,
你同样必须传变量给它。
这三种参数与Java中方法参数模式是基本一样的。
你们平实用的都是IN模式的,省掉IN就是IN模式。
当需要返回值时,你的参数还能带out 与
IN OUT模式。
--创建存储过程
--括号里可以是IN的传入参数和OUT传出参数或者IN OUT传进又传出的参数
create or replace procedure p (eno in number)
is
--%type 把定义的变量类型设置跟ename的类型一样。
empname ename%type;
begin
select ename into empname from emp where
empno=eno;
dbms_output.put_line('编号为'||eno||'的雇员的姓名是:'||empname);
end p;
--执行存储过程
execute p(7369);
(2)、过程调用
在数据库中调用execute,只能执行不带参数与带IN参数的存储过程。
语法:exec 存储过程名。
其他的必须用语句块,因为必须传变量。
主:过程与函数的区别,过程可以有多个返回值,而函数只能有一个返回值