1、定义

  所谓存储过程(Procedure),就是一组用于完成特定数据库功能的SQL语句集,该SQL语句集经过

  编译后存储在数据库系统中。在使用时候,用户通过指定已经定义的存储过程名字并给出相应的存储过程参数

  来调用并执行它,从而完成一个或一系列的数据库操作。

  2、存储过程的创建

  Oracle存储过程包含三部分:过程声明,执行过程部分,存储过程异常。

  3. 使用存储过程的好处:

  1.简化复杂的操作

  2.增加数据的独立性

  3.提高安全性

  4.存储过程的语法

  CREATE [OR REPLACE] PROCEDURE procedure_name [in | out | in out datatype]

  IS|AS

  <声明部分>

  begin

  <执行部分>

  exception

  <异常部分>

  end;

  4.1无参数的存储过程:

  create or replace procedure p_test1 as

  begin

  for i in (select slbh,bdczh from dj_djb where slbh like '20170825%') loop

  dbms_output.enable(buffer_size=>null);

  dbms_output.put_line(i.slbh||','||i.bdczh);

  end loop;

  end;

  复制代码

  begin

  p_test1;

  end;

  4.2.有参的存储过程:

  4.2.1.参数名 IN 数据类型 DEFAULT 值;

  定义一个输入参数变量,用于传递参数给存储过程。在调用存储过程时,主程序的实际参数可以是常量、有值变量或表达式等。DEFAULT 关键字为可选项,用来设定参数的默认值。如果在调用存储过程时不指明参数,则参数变量取默认值。在存储过程中,输入变量接收主程序传递的值,但不能对其进行赋值。

  ege:

  create or replace procedure p_test2 (v_slbh in varchar2 default 201711010025 )

  as

  v_bdczh dj_djb.bdczh%type;

  begin

  select bdczh into v_bdczh from dj_djb where slbh =v_slbh;

  dbms_output.put_line(v_bdczh);

  end;

  复制代码

  4.2.2.参数名 OUT 数据类型;

  定义一个输出参数变量,用于从存储过程获取数据,即变量从存储过程中返回值给主程序。

  在调用存储过程时,主程序的实际参数只能是一个变量,而不能是常量或表达式。在存储过程中,参数变量只能被赋值而不能将其用于赋值,在存储过程中必须给输出变量至少赋值一次。

  ege:

  create or replace procedure p_test3 (v_slbh varchar2 default 201711010025,v_bdczh out varchar2)

  as

  begin

  select bdczh into v_bdczh from dj_djb where slbh=v_slbh;

  dbms_output.put_line(v_slbh||','||v_bdczh);

  end ;

  ....调用.......

  declare

  v_1 dj_djb.bdczh%type;

  begin

  p_test3(v_bdczh=>v_1);

  end;

  复制代码

  4.2.3.参数名 IN OUT 数据类型 DEFAULT 值;

  定义一个输入、输出参数变量,兼有以上两者的功能。在调用存储过程时,主程序的实际参数只能是一个变量,而不能是常量或表达式。DEFAULT 关键字为可选项,用来设定参数的默认值。在存储过程中,变量接收主程序传递的值,同时可以参加赋值运算,也可以对其进行赋值。在存储过程中必须给变量至少赋值一次。

  注:如果省略IN、OUT或IN OUT,则默认模式是IN。

  5.查看存储过程错误原因:

  select * from user_errors where name=upper(‘p_test1’);

  by wolihaito 2018.03.26

  复制代码(编辑:雷林鹏 来源:网络)

Oracle Procedure记录的更多相关文章

  1. 项目中oracle存储过程记录——经常使用语法备忘

    项目中oracle存储过程记录--经常使用语法备忘 项目中须要写一个oracle存储过程,需求是收集一个复杂查询的内容(涉及到多张表),然后把符合条件的记录插入到目标表中.当中原表之中的一个的日期字段 ...

  2. 移植Oracle procedure 到 postgresql

    1.登录postgresql psql -h 192.168.137.131 -p 5432 postgres satusc@6789#JKL 2.创建用户 CREATE USER name thun ...

  3. Oracle procedure 基本语法

    转自:http://lorry1113.javaeye.com/blog/513851 关键字: oracle 存储过程 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程 ...

  4. (转载)Oracle procedure 基本语法

    转自:http://www.cnblogs.com/wolfplan/p/4004624.html 关键字: oracle 存储过程 1.基本结构 CREATE OR REPLACE PROCEDUR ...

  5. ASP.NET操作Oracle知识记录(采用ODP.NET)

    最近因为要把以前做的一个项目数据库从MSSQL2005转移到Oracle上,所以开始接触Oracle,通过本篇随笔简单记录一些ASP.NET结合Oralce的操作: 因为微软未来不再支持 System ...

  6. Oracle学习记录1

    1.current_date与sysdate区别 在oracle中current_date与sysdate都是显示当前系统时间, 其结果基本相同,但是有三点区别:a. current_date返回的是 ...

  7. Oracle使用记录

    1.连接数据库的方式 sqlplus system/system@127.0.0.1:1521/orcl #远程用户名密码连接 sqlplus dbsnmp/oracle; #本地用户名密码连接 sq ...

  8. ORACLE百万记录SQL语句优化技巧

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  9. Oracle存储过程记录异常

    --建立错误日志表 create table PUB_PROC_ERR_LOG ( LOG_ID NUMBER, MODULE_NAME ), PROC_NAME ), ERR_TIME DATE, ...

随机推荐

  1. 【转载】ARM MMU详解

    一.MMU的产生       许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以 ...

  2. Java基础—输入输出流

    流的概念 在Java中,流是从源到目的地的字节的有序序列.Java中有两种基本的流——输入流(InputStream)和输出流(OutputStream). 根据流相对于程序的另一个端点的不同,分为节 ...

  3. mysql 锁相关的视图(未整理)

    mysql 锁相关的视图 查看事务,以及事务对应的线程ID   如果发生堵塞.死锁等可以执行kill  线程ID  杀死线程      kill  199 SELECT * FROM informat ...

  4. python16_day26【crm 增、改、查】

    一.增加 二.修改 三.保存

  5. 12.MySQL必知必会之分组数据

    本文将介绍如何分组数据,以便能汇总表内容的子集,这涉及两个新SELECT语句子句,分别是 GROUP BY 子句和HAVING子句. 1.1 创建分组 分组是在SELECT语句的GROUP BY子句中 ...

  6. 优化css,增加性能

    转载自:https://www.cnblogs.com/xiaoloulan/p/5801663.html 前端性能优化一直是一个比较热门的话题,我们总是在尽我们最大的努力去,提高我们的页面性能,比如 ...

  7. Druid学习之路 (一)Druid初识

    作者:Syn良子 出处:https://www.cnblogs.com/cssdongl/p/9588079.html 转载请注明出处 最近在学习和使用Druid.觉得一些章节有必要按照自己的理解翻译 ...

  8. string integer == equals 转

    java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boolean   他们之间的比较,应用双等号(== ...

  9. SpringBoot入门学习(二)

    第一讲我们已经讲解了入门Demo,这一讲我们主要讲解包含以下内容 项目内一些属性配置 自定义属性配置 ConfigurationProperties配置 (1)第一个工程创建的时候会自动在工程下创建a ...

  10. c++第三十二天

    p164~p170: 大致内容 迭代语句 1.while语句. 2.传统for. 3.范围for.两个注意点是:1- 通常使用auto来确保类型相容,2- 如果需要修改元素则需要使用&符(还可 ...