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. MYSQL中,CAST函数的使用规则

    CAST函数语法规则是:Cast(字段名 as 转换的类型 ),其中类型可以为: CHAR[(N)] 字符型 DATE 日期型DATETIME 日期和时间型DECIMAL float型SIGNED i ...

  2. SpringMVC-SimpleDEMO

    本博文主要将如何配置一个简单的SpringMVC的DEMO,由上一讲的SpringMVC工作流程来看,配置一个SpringMVC的步骤是简单而清晰的. 一.引入SpringMVC所需依赖   < ...

  3. django 用户登陆的实现 构造类的方式

    在views下增加LoginView类 from django.views.generic.base import View class LoginView(View): def get(self,r ...

  4. HDU - 5592 ZYB's Premutation (权值线段树)

    题意:给出序列前k项中的逆序对数,构造出这个序列. 分析:使用权值线段树来确定序列元素. 逆序对的数量肯定是递增的,从最后一个元素开始逆向统计,则\(a[i] - a[i-1]\)即位置i之前比位置i ...

  5. 【Linux学习】3.Linux常见配置文件

    一./etc 配置文件/etc/passwd 用户数据库,其中的域给出了用户名.真实姓名.家目录.加密口令和用户的其他信息 /etc/group 类似/etc/passwd ,但说明的不是用户而是组. ...

  6. python、pip、whl安装和使用

    1 python的安装 首先,从python的官方网站 www.python.org下载需要的python版本,地址是这个: http://www.python.org/ftp/python/2.7. ...

  7. java中hashSet原理

    转自: http://blog.csdn.net/guoweimelon/article/details/50804799 HashSet是JavaMap类型的集合类中最常使用的,本文基于Java1. ...

  8. SDUT OJ 2607

    /*http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2607*/ 题目大意:给出一个字符串,求出里 ...

  9. 【WPF】修改ComboBox样式

    修改WPF默认的ComboBox控件样式 如下图所示: 修改代码如下: <UserControl.Resources> <Style TargetType="ToggleB ...

  10. Kafka学习之(四)PHP操作Kafka

    简单测试 环境:Centos6.4,PHP7,kafka服务器IP:192.168.9.154,PHP服务器:192.168.9.157 在192.168.9.157创建目录和文件. //生产者 &l ...