oracle存储过程语法数据库

过程是执行某些程序的子程序,他是执行特定任务的模块。过程就是命名的PL/SQL程序块。它可以被赋予参数,存储在数据库中,然后有一个应用程序或其他PL/SQL程序调用。



创建过程:

CREATE [OR REPLACE] PROCEDURE procedure_name

[(parameter_list)]

{IS|AS}

[local_declatations]

BEGIN

Executeable_statements

[EXCEPTION]

exception_handlers

END[procedure_name]



其中procedure_name是过程名称,parameter_list是参数列表,local_declatations是局部声明,Executeable_statements 是可执行语句,exception_handlers是异常处理程序。声明部分置于关键字IS和BEGIN之间。过程最后的END关键字可以使用可选的procedure_name结束。



例1

CREATE OR REPLACE PROCEDURE find_emp(emp_no NIMBER)

AS

empname VARCHAR2(20);

BEGIN

SELECT ename INTO empname FROM EMP WHERE empno=emp_no;

END find_emp







执行过程>EXECUTE procedure_name(paramenters_list)





参数IN模式是默认模式。如果未指明参数的模式,则认为参数是IN参数。而对于OUT和IN OUT参数,必须指定。



例2 创建IN模式参数的过程

CREATE OR REPLACE PROCEDURE itemdesc(item_code IN VARCHAR2)

IS

v_itemdesc VARCHAR2(5);

BEGIN

SELECT itemdesc INTO v_itemdesc FROM itemfile WHERE itemcode=item_code;

END



执行过程>EXECUTE itemdesc(‘i201’)

例3 创建OUT模式参数的过程



CREATE OR REPLACE PROCEDURE

test(value1 IN VARCHAR2,value2 OUT NUMBER)

IS

Identity NUMBER;

BEGIN

SELECT ITEMRATE INTO identity FROM itemfile

WHERE itemcode=value1;

IF identity<200 THEN

Value2:=50;

ELSE

Value2:=100;

END IF;

END;



当程序返回值时,只能通过另一个程序查看该值。

DECLARE value2 NUMBER;

BEGIN

Test(‘i202’,value2);

DBMS_OUTPUT.PUT_LINE(‘value2的值为’||TO_CHAR(value2));

END;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值