Oracle存储过程学习

存储过程创建语法:

       create or replace procedure 存储过程名(param1 in type,param2 out type)

as

变量1 类型(值范围);

变量2 类型(值范围);

Begin

    Select count(*) into 变量1 from 表A where列名=param1;

    If (判断条件) then

       Select 列名 into 变量2 from 表A where列名=param1;

       Dbms_output。Put_line(‘打印信息’);

    Elsif (判断条件) then

       Dbms_output。Put_line(‘打印信息’);

    Else

       Raise 异常名(NO_DATA_FOUND);

    End if;

Exception

    When others then

       Rollback;

End;

 

注意事项:

1,  存储过程参数不带取值范围,in表示传入,out表示输出

2,  变量带取值范围,后面接分号

3,  在判断语句前最好先用count(*)函数判断是否存在该条操作记录

4,  用select 。。。into。。。给变量赋值

5,  在代码中抛异常用 raise+异常名

 

 

以命名的异常

命名的系统异常                          产生原因

ACCESS_INTO_NULL                   未定义对象

CASE_NOT_FOUND                     CASE 中若未包含相应的 WHEN ,并且没有设置

ELSE 时

COLLECTION_IS_NULL                集合元素未初始化

CURSER_ALREADY_OPEN          游标已经打开

DUP_VAL_ON_INDEX                   唯一索引对应的列上有重复的值

INVALID_CURSOR                 在不合法的游标上进行操作

INVALID_NUMBER                       内嵌的 SQL 语句不能将字符转换为数字

NO_DATA_FOUND                        使用 select into 未返回行,或应用索引表未初始化的 

 

TOO_MANY_ROWS                      执行 select into 时,结果集超过一行

ZERO_DIVIDE                              除数为 0

SUBSCRIPT_BEYOND_COUNT     元素下标超过嵌套表或 VARRAY 的最大值

SUBSCRIPT_OUTSIDE_LIMIT       使用嵌套表或 VARRAY 时,将下标指定为负数

VALUE_ERROR                             赋值时,变量长度不足以容纳实际数据

LOGIN_DENIED                           PL/SQL 应用程序连接到 oracle 数据库时,提供了不

正确的用户名或密码

NOT_LOGGED_ON                       PL/SQL 应用程序在没有连接 oralce 数据库的情况下

访问数据

PROGRAM_ERROR                       PL/SQL 内部问题,可能需要重装数据字典& pl./SQL

系统包

ROWTYPE_MISMATCH                宿主游标变量与 PL/SQL 游标变量的返回类型不兼容

SELF_IS_NULL                             使用对象类型时,在 null 对象上调用对象方法

STORAGE_ERROR                        运行 PL/SQL 时,超出内存空间

SYS_INVALID_ID                         无效的 ROWID 字符串

TIMEOUT_ON_RESOURCE         Oracle 在等待资源时超时 

存储过程是一种存储在数据库中的预编译的程序单元,它用于执行特定的任务。Oracle数据库提供了强大的存储过程功能,以下是学习Oracle存储过程的一些建议: 1. 学习SQL语言:在学习存储过程之前,了解SQL语言是非常重要的。掌握SQL的基本语法和常用操作,例如SELECT、INSERT、UPDATE和DELETE语句等。 2. 学习PL/SQL语言:PL/SQLOracle数据库专用的过程编程语言,它结合了SQL和常规编程语言的特性。学习PL/SQL语言,包括变量声明、条件和循环控制结构、异常处理等。 3. 理解存储过程的概念:了解存储过程的作用和优势,以及如何使用存储过程提高数据库的性能和安全性。 4. 学习存储过程的语法:了解存储过程的基本语法,包括存储过程的创建、调用和删除等。 5. 理解存储过程参数:了解存储过程的参数类型和用法,包括输入参数、输出参数和输入输出参数。 6. 学习存储过程的编写和调试:练习编写简单的存储过程,并进行调试和测试,以确保其正确性和可靠性。 7. 学习存储过程的高级特性:学习存储过程的高级特性,如游标、异常处理、事务处理等,以提高存储过程的灵活性和功能。 8. 实践和练习:通过实际项目和练习来巩固所学的知识,尝试解决实际问题并优化存储过程的性能。 有很多书籍、在线教程和文档可供参考,其中包括Oracle官方文档和社区论坛。另外,通过实践和与其他开发人员的交流也是学习Oracle存储过程的有效方式。祝你学习顺利!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值