专业汉语词典知识平台,分享汉字词语知识、历史文学知识解答!

励北网
励北网

oracle存储过程是什么,oracle存储过程详解

来源:小易整编  作者:小易  发布时间:2023-03-17 04:33
摘要:oracle存储过程是什么,oracle存储过程详解1、定义所谓存储过程(StoredProcedure),就是一组用于完成特定数据库功能的SQL语句集,该SQL语句集经过编译后存储在数据库系统中。在使用时候,用户通过指定已经定义的存储过程...

1

2

3

4

5

6

7

8

9

10

11

12

declare

realsal emp.sal%type;

realname varchar(40);

realjob varchar(40);

begin//过程调用开始

realsal:=1100;

realname:='';

realjob:='CLERK';

--指定值对应变量顺序可变

runbyparmeters(sname=>realname,isal=>realsal,sjob=>realjob);

DBMS_OUTPUT.PUT_LINE(REALNAME||' '||REALJOB);

END; //过程调用结束

(3)过程调用方式三(SQL命令行方式下)

1、SQL>exec proc_emp(‘参数1’,’参数2’);//无返回值过程调用

2、SQL>var vsal number

SQL> exec proc_emp (‘参数1’,:vsal);// 有返回值过程调用

或者:call proc_emp (‘参数1’,:vsal);// 有返回值过程调用

存储过程创建语法

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

create[orreplace] procedure存储过程名(param1 intype,param2 outtype)

as

变量1 类型(值范围);

变量2 类型(值范围);

Begin

Selectcount(*) 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);

Endif;

Exception

Whenothers then

Rollback;

End;

注意事项

存储过程参数不带取值范围,in表示传入,out表示输出; 变量带取值范围,后面接分号; 在判断语句前最好先用count(*)函数判断是否存在该条操作记录; 用select … into … 给变量赋值; 在代码中抛异常用 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 在等待资源时超时

基本语法1. 基本结构

1

2

3

4

5

6

7

8

9

10

CREATEORREPLACEPROCEDURE存储过程名字

(

参数1 INNUMBER,

参数2 INNUMBER

) IS

变量1 INTEGER:=0;

变量2 DATE;

BEGIN

--执行体

END存储过程名字;

2. SELECT INTO STATEMENT

将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND)

例子:

1

2

3

4

5

6

BEGIN

SELECTcol1,col2 into变量1,变量2 FROMtypestruct wherexxx;

EXCEPTION

WHENNO_DATA_FOUND THEN

xxxx;

END;

3. IF 判断

1

2

3

4

5

IF V_TEST = 1 THEN

BEGIN

do something

END;

ENDIF;

4. while 循环

1

2

3

4

5

WHILE V_TEST=1 LOOP

BEGIN

XXXX

END;

ENDLOOP;

5. 变量赋值

1

V_TEST := 123;

6. 用for in 使用cursor


本文地址:百科问答频道 https://www.neebe.cn/wenda/930785_2.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


百科问答
小编:小易整编
相关文章相关阅读
  • 文件存储是什么意思?

    文件存储是什么意思?

    文件存储,也叫文件存储系统,是数据存储的一种方式,是一种存储一组文件的系统,它可以存储文件拷贝、文件夹和其他数据。文件存储系统有不同类型,具体取决于它支持的文件类型。一些文件存储系统只支持一种文件类型,如电子文件系统,只支持电子文件类型。...

  • 存储协议是什么意思?

    存储协议是什么意思?

    存储协议是指计算机系统中不同设备之间进行数据交换和共享时所采用的规范化通信协议。它主要规定了数据存储和访问的格式,以及设备之间的通信方式等方面的规则。存储协议的实现可以使不同厂商和不同平台的存储设备进行数据交换与共享,从而提高了数据的可靠...

  • 虚拟存储是什么意思?

    虚拟存储是什么意思?

    虚拟存储是指在物理存储上实现虚拟磁盘的一种存储技术。它主要是实现将物理存储器中的一大块存储空间分割成多个大小不等的虚拟存储单元,用于存储不同的数据,从而模拟出多个逻辑独立的存储单元。虚拟存储技术的优势在于,为用户提供了可靠的数据存储能力,...

  • 大数据存储是什么意思?

    大数据存储是什么意思?

    大数据存储是一种存储解决方案,可将巨量的结构化和非结构化数据存储到集群中,并以可扩展、高可用性及容错性的形式安全地存储、处理和管理数据。它支持分组存储、共享部署、海量存储空间和可拓展伸缩。大数据存储的概念实质上是基于数据的存储,即多个用户...

  • Blob 存储是什么

    Blob 存储是什么

    Blob存储是MicrosoftAzure中的一项功能,可让开发人员在Microsoft的云平台中存储非结构化数据。这些数据可以从世界上任何地方访问,可以包括音频,视频和文本。Blob存储是MicrosoftAzure中...

  • 什么是云存储 API

    什么是云存储 API

    云存储API是一种应用程序接口,它将基于本地的应用程序连接到基于云的存储系统,以便用户可以向其发送数据并访问和处理存储在其中的数据。云存储API是一种应用程序接口,它将基于本地的应用程序连接到基于云的存储系统,以便用户可以向其发送数据并...

  • 群晖NAS硬盘、存储空间和存储池之间有什么关系

    群晖NAS硬盘、存储空间和存储池之间有什么关系

    群晖NAS中数据存储的介质分为硬盘、存储空间和存储池。硬盘用于存储数据的物理存储设备;存储池是将许多物理硬盘聚合为一个大型存储空间;存储空间可以在存储池中创建一个或多个存储空间,以将硬盘的容量划分为可管理的空间。在群晖NAS中数据存储的...

  • 群晖NAS存储池故障如何修复

    群晖NAS存储池故障如何修复

    群晖NAS如果出现存储池故障,将显示一条消息,告知您系统无法再访问系统分区。执行以下操作以对此问题进行故障排除:使用管理员账号登陆群晖Synology后台;启动存储空间管理员;进入总览页面并单击修复链接。系统应开始修复系统分区。群晖N...

  • 周排行
  • 月排行
  • 年排行

精彩推荐