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. 一种SPA(单页面应用)架构

    (如果对SPA概念不清楚的同学可以先自行了解相关概念) 平时喜欢做点小页面来玩玩,并且一直采用单页面应用(Single Page Application)的方式来进行开发.这种开发方式是在之前一年做的 ...

  2. 嵌入式文件系统构建工具 busybox / buildroot / openwrt

    1.busybox busybox最轻量 1) 修改Makefile CROSS_COMPILE ?= /usr/local/gcc-linaro-arm-linux-gnueabihf/bin/ar ...

  3. python学习笔记(二十五)重写父类方法

    python继承中,如果子类在调用某个方法时,它首先是从派生类(也就是当前类)中去找对应的方法,如果当前类中找不到对应的方法,就会去基类(派生类)中去逐个查找. 若父类的方法不能满足子类的需要,那么子 ...

  4. 在虚拟机中还原GHO镜像系统

    前置知识 本文精简干练,全是干货.首先要知道,一个原版的Windows系统下载下来就是一个iso格式的文件,也被称为一个镜像.另外还有一种镜像是使用ghost软件制作的,格式为gho的镜像,而ghos ...

  5. NOSQL概念入门

    一.NOSQL概念 随着大数据时代的到来,分布式存储得到了快速发展,其中比较受欢迎的,主要以key-value键值对存储的非关系型数据库进入了大家的视野. NOSQL的全称是Not Only Sql, ...

  6. 3.MySQL必知必会之检索数据-SELECT语句

    本章将介绍如何使用SELECT语句从表中检索一个或多个数据列. 1.SELECT语句 SQL语句是由简单的英语单词构成的.这些单词称为关键字,每个SQL语句都是由一个或多个关键字构成的.大概,最经常使 ...

  7. HDU 1114 Piggy-Bank(完全背包模板题)

    完全背包模板题 #include<cstdio> #include<cstring> #include<algorithm> using namespace std ...

  8. spring boot 总结

    一.什么是SpringBoot 描述:Spring Boot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目.大多数SpringBoot项目只需要很少的配置文件.二.Spr ...

  9. PHP Web木马扫描器

    <?php  header('content-type:text/html;charset=gbk');  set_time_limit(0);//防止超时  /** * * php目录扫描监控 ...

  10. Spring MVC 复习笔记03

    1. @RequestMapping 1). url映射 定义controller方法对应的url,进行处理器映射使用. 2). 窄化请求映射  3). 限制http请求方法 出于安全性考虑,对htt ...