​​Oracle的存储过程基本写法​​

Oracle存储过程简介:

  存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。

优点:

  • 允许模块化程序设计,就是说只需要创建一次过程,以后在程序中就可以调用该过程任意次。
  • 允许更快执行,如果某操作需要执行大量SQL语句或重复执行,存储过程比SQL语句执行的要快。
  • 减少网络流量,例如一个需要数百行的SQL代码的操作有一条执行语句完成,不需要在网络中发送数百行代码。
  • 更好的安全机制,对于没有权限执行存储过程的用户,也可授权他们执行存储过程。

1.2,创建存储过程的语法:

概述就是

create

begin

end

  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;

参数的几种类型:

in 是参数的默认模式,这种模式就是在程序运行的时候已经具有值,在程序体中值不会改变。

out 模式定义的参数只能在过程体内部赋值,表示该参数可以将某个值传递回调用他的过程       in out 表示高参数可以向该过程中传递值,也可以将某个值传出去

创建和运行简单的存储过程

>举个​存储过程栗子----【创建一个存储过程,该存储过程实现向dept表中插入一条记录】(首先记得自己建一张表,这里不再演示了)

create​ ​[or replace] procedure pro_insertDept is

begin

insert into dept values(77,'市场拓展部','8');

commit;

dbms_output.put_line('插入新纪录成功!');

end pro_insertDept;

执行Execute之后,

从上面的结果看出,我们已经顺利的创建出了存储过程pro_insertDept。【如果没有创建成功的话,可以使用show error命令查看错误信息。】

》》如果在我们创建之前,就已经有这个同名的存储过程了,那么应该怎么处理呢?【两种方法】

  ①修改现有的存储过程名称,重新创建

  ②使用字段中“OR Replcae"关键字创建一个同名的存储过程覆盖已经存在的存储过程。实际使用不加中括号,这里只是表示可有可无;

    表示已经存在的话覆盖后,创建存储过程;没有的话,直接创建存储过程。

总结:

存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。在数据量特别庞大的情况下利用存储过程能达到倍速的效率提升。

oracle的存储过程写法Oracle中如何写存储过程相关推荐

  1. oracle的insert写法,oracle中的insert语句

    关键字: ORACLE insert into table oracle中的insert语句 在oracle中使用DML语言的insert语句来向表格中插入数据,先介绍每次只能插入一条数据的语法 IN ...

  2. oracle的标准写法,oracle 表连接特有写法与标准写法

    oracle里表连接支持标准写法,但也有oracle特殊的写法,这两种写法在某些场景下会有差异,推荐使用标准写法,这里只是介绍表连接标准语法及了解oracle的特殊写法. 标准连接语法: select ...

  3. oracle的insert写法,Oracle中Insert语句的总结

    在Oracle中,insert语句的使用: 1.insert into 表1(列名1,列名2,--) values(值1,值2,--) 2.insert into 表1(列名1,列名2,--) sel ...

  4. oracle dml触发器写法,Oracle DML类型触发器

    Oracle DML类型触发器是Oracle开发过程中最常用和最常见的触发器,主要用于DML操作,例如: 插入,删除,更新操作事件触发器. 由DML类型触发器安装的事件触发前后和数据触发器的类型可以分 ...

  5. oracle程序包写法,Oracle学习笔记20150913pl/sql编程包的写法

    1.包体是一种实现在包中声明函数与过程的数据对象(在包体中实现的函数或者过程必须先在包中声明) 在调用包中的方法或者过程时①控制台中 exec 方案名.包名.过程名(参数...);或者call 方案名 ...

  6. linux shell 执行存储过程,在shell中调用执行存储过程

    基本的shell文件结构如下: sqlplus user/password < exec proc_name; exit ! Demo procedure name: sp_ems_hasten ...

  7. mysql怎么写存储过程_MySQL存储过程和函数简单写法

    MySQL存储过程 MySQL中,创建存储过程的基本形式如下: CREATE PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic .. ...

  8. 在Oracle中不通过存储过程一次执行多条SQL语句Oracle PL/SQL

    PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL ...

  9. Oracle 在存储过程或函数中执行字符串sql

    有时,我们需要在存储过程或函数中根据条件拼凑一些sql字符串语句,然后再执行拼凑后的sql字符串,如何做到呢? 参考以下代码: FUNCTION CALCULATE_TARGET_SCORE (CUR ...

最新文章

  1. 用友服务器文件如何查找,如何查询用友t3服务器地址
  2. 西安python培训班多少钱-西安Python培训班哪个好
  3. 编程方法学笔记:karel和java
  4. 解决vue router使用 history 模式刷新后404问题
  5. 两个SAP UI5脚手架应用加载性能的比较
  6. redis 查看key的有效期_redis中key设置过期时间
  7. java访问权限修饰符从大到小_程序员的术与道:道——Java修饰符之非访问控制修饰符...
  8. GDBT、AdaBoost、XGBoost提升算法解析
  9. NB-IoT移远BC95调试笔记 01 加网测试
  10. Charles4.62破解版本下载
  11. 面向对象思想的头脑风暴(一)
  12. sentence_transformers 微调模型
  13. Re32:读论文 Summarizing Legal Regulatory Documents using Transformers
  14. python直接把汉字转换为拼音
  15. 图片一键添加水印工具V1.0-免费版
  16. 《自然-机器智能》:神经形态技术可使大型深度学习网络节能16倍
  17. 嵌入式GEC6818利用多线程实现视频播放器
  18. 求通俗解释下bandit老虎机是个什么东西?
  19. 10 windows 启动虚拟机报错_VirtualBox5.0安装Windows10虚拟机启动失败
  20. html 与 jsp 文件格式区别

热门文章

  1. 关于Reference to 'xxxxx' is ambiguous 错误
  2. 基于C++类模板的链表
  3. 思维的误区:自利归因、光晕效应、随机谬误、赌徒谬误、二元谬误 (转)
  4. SpringMVC mybatis SSM 多数据源 java redis shiro 代码生成器
  5. ValueError: No engine for filetype: ''
  6. id3算法c语言实现,从ID3到C5.0的故事:算法详解及实践应用
  7. linux上下行网速测试-小白实操记录
  8. IPFS技术的严谨性介绍
  9. 程序员兼职平台、网站
  10. python挂科了要重修吗_选修课挂科有什么影响 需要重修吗