您的位置:首页 > 数据库 > Oracle

Oracle学习之常用对象(三)—异常&变量&存储过程

2016-02-13 17:31 633 查看
这一章,我们谈谈变量,异常和存储过程。对他们的使用语法进行描述。

1、一般变量

DECLARE

--声明变量

V_NAME VARCHAR2(30);

V_ADDRESS VARCHAR2(60);

V_PHONE NUMBER;

BEGIN

V_NAME := 'mayun'; --初始化变量

END;

2、记录型变量

DECLARE

TYPE peopleinfo IS RECORD

(

v_name VARCHAR2(30),

v_address VARCHAR2(50),

v_phone NUMBER

);

v_people_1 peopleinfo;--定义变量

3、ROWTYPE类型

v_people peopleinfo%ROWTYPE;--表peopleinfo中所有字段组成的类型

v_people_1 peopleinfo.name%TYPE;--表peopleinfo中name字段的类型

二、异常处理

首先,异常处理是为了处理我们可能遇到的问题。异常有预定义异常、非预定义还有用户自定义异常。

1、ORACLE预定义的异常情况大约有24个。对这种异常情况的处理,无需在程序中定义,由ORACLE自动将其引发。

2、非预定义异常即其他标准的ORACLE错误。对这种异常情况的处理,需要用户在程序中定义,

然后由ORACLE自动将其引发。

3、用户定义异常是程序执行过程中,出现编程人员认为的非正常情况。对这种异常情况的处理,需要用户在程序中定义,

然后显式地在程序中将其引发。

平时,我用到的异常不多,常用的是预定义异常,其他的接触不多。

4、预定义实例

DECLARE

V_RESULT NUMBER;

V_EXCP VARCHAR2(50);

BEGIN

V_RESLUT := 100 / 0;

EXCEPTION

WHEN ZERO_DIVIDE THEN

V_EXCP := '除数为零!';

END;

5、非预定义实例

DECLARE

V_EXCP VARCHAR2(50);

V_NAME VARCHAR2(20);

2291_EXCP EXCEPTION; --定义异常情况

PRAGMA EXCEPTION_INIT(MY_2291_EXP, -2291); --把异常名称跟错误号关联

BEGIN

V_NAME := 'mayun';

UPDATE PEOPLEINFO SET NAME = V_NAME;

EXCEPTION

WHEN 2291_EXCP THEN

V_EXCP := '违反完整性约束,未找到父项关键字';

ROLLBACK;

END;

三、存储过程

存储过程是我们经常用到的数据处理方式,基本语法如下,具体处理的逻辑在代码块中实现。

/*创建存储过程*/

CREATE PROCEDURE SP_PEOPLEINFO(ACCT_MONTH VARCHAR2 IN,

V_RPT VARCHAR2 OUT) IS

BEGIN

V_SQL VARCHAR2(500);

V_SQL := 'create table test(t_id varcahr2(20),t_name varcahr2(30))';

V_SQL := 'drop table test';

END;

/*删除存储过程*/

DROP PROCEDURE SP_PEOPLEINFO;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: