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. C的指针疑惑:C和指针8数组

    ]; ]; 上面申明两个数组,不能进行以下赋值 b = a; 你不能使用赋值符把一个数组的所有元素复制给另一个数组,必须使用一个循环,每次复制一个元素 数组和指针 ]; int *b; 声明一个数组, ...

  2. Linux下BLAST的使用---转载

    1.把BLAST的压缩文件解压,然后将bin目录下的文件拷贝至/usr/local/bin下:2.制作软链接,将解压后的文件中bin目录链接至/home/username下,eg:ln -s /hom ...

  3. 给idea配置默认的java jdk

    1. 2. 3.选择安装的jdk的路径. 4.

  4. XDU 1055

    #include<stdio.h> #include<cstring> int main() { //freopen("orz.txt","w&q ...

  5. java模拟http/https post请求

    1.Post请求失败的代码 try { HttpResponse response = httpClient.execute(httpPost); HttpEntity entity = respon ...

  6. MySQL 温故知心(一)

    1.创建表 SET NAMES utf8; ; -- ---------------------------- -- Table structure for `employee_tbl` -- --- ...

  7. ls命令输出的文件颜色

    ls的输出颜色不止3种,有以下几种,白色:表示普通文件蓝色:表示目录绿色:表示可执行文件红色:表示压缩文件浅蓝色:链接文件红色闪烁:表示链接的文件有问题 黄色:表示设备文件 灰色:表示其他文件 这是l ...

  8. 深入 CommonJs 与 ES6 Module

    目前主流的模块规范 UMD CommonJs es6 module umd 模块(通用模块) (function (global, factory) { typeof exports === 'obj ...

  9. 一键安装lnmp-mysql(4)

    mysql(){cd $pathtar zxvf cmake-2.8.11.2.tar.gzcd cmake-2.8.11.2./configuremakemake installcd ..tar z ...

  10. 20145301《Java程序设计》实验报告一:Java开发环境的熟悉

    20145301<Java程序设计>实验报告一:Java开发环境的熟悉 课程:Java程序设计 实验名称:Java开发环境的熟悉 实验目的与要求: 1.没有Linux基础的同学建议先学习& ...