oracle procedure可以执行非常复杂的语句吗,oracle-存储过程(procedure)

存储过程

--可以理解为给匿名块起个名字,可以保存到数据库服务器上,方便以后的应用。

--预编译(已经编译好的)sql语句。

---oracle语句也是要先编译在运行的语言。所以说编译好了,就可以直接运行了,节约了再次编译的时间。

-------------------

写一个存储过程:

将pl/sql语句块改写成存储过程

1.将declare改成is 或者 as

2.加一个存储过程的定义头

create or replace procedure pro_名

is

//声明部分

begin

//执行部分

end;

查看过程,确保过程正确建立。

使用存储过程:

begin

pro_名(参数列表);

end;

或者

在命令窗口用 execute pro_名(参数列表);

查看存储过程错误信息

1. pl/sql

procedures

2.命令窗口

show error

----------------------------

带参数的过程:

参数的写法:变量名   输入/输出  变量类型

参数的类型不要写成 number(10) 要写成number;   varchar2也不要写长度

输入参数 在过程里 是不可以被修改的。

输出参数 不能输入,只能在过程中给赋值

若是既要能输入又要能输出呢--- v_a in out number

过程没有返回值,但是有输出参数。同样可以返回信息

create or replace procedure pro_get_bigger(v_a in number,v_b in number,v_bigger in out number)

is

begin

if(v_a > v_b) then

v_bigger :=v_a;

else

v_bigger :=v_b;

end if;

end;

----

declare

v_a number(10) := 40;

v_b number(10) :=20;

v_bigger number(10);

begin

pro_get_bigger(v_a,v_b,v_bigger);

end;

--重点:得到update影响的函数

隐士游标的使用

SQL%rowcount--获取一个number类型的返回值,最后一条语句影响的行数。

---------------------------------------------

函数与过程的区别:

1.函数有返回值,过程没有返回值,但是可以通过输出参数实现返回值得功能‘

2.在sql语句中函数一般实现一些稍复杂的计算功能

存储过程主要完成独立过程。

----------------------------------------

函数

1.分 内置函数  自定义函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值