有个超级详细的关于存储过程的帖子:https://www.cnblogs.com/snowballed/p/6766867.html

Oracle-存储过程(procedure、function、package、tigger)
1、过程procedure
(1)创建过程

create [ or replace ] procedure 过程名称 [ ( 参数列表) ] { is | as }

----声明变量

begin

----执行代码

end [过程名称];

例如:
create or replace procedure myproc
as m number; begin m:=100;
dbms_output.put_line(m); end;

(2)调用过程

exec 存储过程名称 [ (参数) ]

execute 存储过程名称 [ (参数) ]

begin

----存储过程名称 [ (参数) ]

end

(3)删除过程

drop procedure 过程名称 

(4)获取过程返回值
过程的返回值,out参数都是可以获取的

2、函数function
(1)创建函数

create [ or replace ] function 函数名称 [ (参数列表) ] return 返回值类型

{ is | as }

----声明变量

begin

----执行代码

end [函数名称]; 

(2)调用函数

declare

----创建变量存储函数调用返回值

begin

----调用函数赋值给变量

end; 

(3)删除函数

drop function 函数名称 

(4)获取函数返回值
函数的返回值,out参数都是可以获取的

注意:过程和函数的区别
①函数至少返回一个变量,而过程可以返回多个,也可以不返回。
函数是可以嵌入在sql中使用的,可以在select中调用,而存储过程不行。
②函数限制比较多,比如不能用临时表,只能用表变量.还有一些函数都不可用等等.
而过程的限制相对就比较少。
③对于过程来说可以返回参数,而函数只能返回值或者表对象。
④存储过程一般是作为一个独立的部分来执行(EXEC执行),而函数可以作为查询语句的一个部分来调用(SELECT调用),
由于函数可以返回一个表对象,因此它可以在查询语句中位于FROM关键字的后面。

3、包和包体
(1)创建包

create [ or replace ] package 包名称 is | as

----定义公用常量、变量、过程、函数等(不能有具体实现)

end [ 包名称 ]; 

(2)创建包体

create [ or replace ] package body 包名称 is | as

----定义公用常量、变量、过程、函数等

----实现公用过程和函数

end [ 包名称 ];

(3)调用包

declare

----定义变量

begin

----包名.元素名称(参数)

end

(4)删除包和包体

drop package [ body ] [ user. ] 包名

4、触发器tigger
(1)创建触发器

create [or replace] tigger 触发器名 { before | after } { insert | update | delete }

on 表名 ---- 数据库触发器所在的表。

[for each row] ---- 对表的每一行触发器执行一次。如果没有这一选项,则只对整个表执行一次。

begin

----pl/sql语句

end

(2)删除触发器

drop tigger 触发器名称

(3)禁用所有触发器

ALTER SYSTEM SET "_system_trig_enabled"=false;

转自:https://yq.aliyun.com/articles/675844

Oracle——创建存储过程的更多相关文章

  1. Oracle创建存储过程、执行存储过程基本语法

    >>>>>>>>>>>>>>>>>>>>>>>>> ...

  2. PL SQL 存储过程 SQL SERVER创建存储过程及调用,Oracle创建存储过程及调用

    Oracle使用存储过程实例: 例1: //查出表字段赋值给存储过程变量 create proc proc_stu @sname varchar(20), //默认是输入参数(input),另外还有两 ...

  3. oracle创建存储过程

    创建: create or replace procedure insert_tbuser (   username nvarchar2,usersex nvarchar2,userage numbe ...

  4. oracle创建存储过程并返回结果集(附C#调用代码)

    使用存储过程中,最常用的莫过于查询数据表,并返回结果集. 在SQL SERVER 中,这类操作最简单,通过简单的select * from xx 即可完成.但是在Oracle中并不支持这种写法,那么我 ...

  5. oracle创建存储过程中遇到的问题

    create or replace PROCEDURE CLEAR AS tname varchar(200);BEGIN tname:='''immediate trace name flush_c ...

  6. Oracle:创建存储过程

    1.无参存储过程 create or replace procedure test_procasv_total number(10);begin  select count(*) into v_tot ...

  7. Oracle 创建存储过程 提示权限不足或者提示表和视图不存在问题

    grant create view to hospital; --授予查询权限 grant select any table to hospital; --授予权限 grant select any ...

  8. firedac调用ORACLE的存储过程

    firedac调用ORACLE的存储过程 EMB官方原文地址:http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Using_Oracle_with_F ...

  9. 【转】SQL2008 链接Oracle 调用存储过程

    1. SQL链接ORACLE 都是可视化的操作 如下图: 红色框选的是oracle的数据驱动,如果没有这个驱动 那需要单独安装oracle的client端 装完以后就有了. 2.在创建之前,在SQLS ...

随机推荐

  1. CSS学习笔记:浮动属性

    目录 一.浮动流是什么 二.通过代码实例了解浮动特点 1. 搭建测试框架 2. 添加浮动 3. 浮动元素的排布 4. 给行内元素添加浮动效果 5. 子元素浮动后对父元素的影响 5.1 在父元素中添加o ...

  2. Oracle 相关命令

    http://www.mamicode.com/info-detail-2481866.html sql语句 system用户登陆 查看表空间和存放位置 select t1.name,t2.name ...

  3. MySQL高级篇 | 索引介绍

    前言 性能下降SQL慢的原因 查询语句写的烂 索引失效 单值索引 复合索引 关联查询太多join(设计缺陷或不得已的需求) 服务器调优及各个参数设置(缓冲.线程数等) 索引是什么 MySQL官方对索引 ...

  4. 在代码生成工具Database2Sharp中增加Vue&Element 工作流页面的快速生成

    在我们基于框架开发系统的时候,往往对一些应用场景的页面对进行了归纳总结,因此对大多数情况下的页面呈现逻辑都做了清晰的分析,因此在我们基于框架的基础上,增量式开发业务功能的时候,能够事半功倍.代码生成工 ...

  5. webpack 打包样式资源

    webpack 打包样式资源 webpack.config.js配置文件内容为: // 用来拼接绝对路径的方法 const {resolve} = require('path') module.exp ...

  6. PTA 7-4 最小生成树的唯一性 (35分)

    PTA 7-4 最小生成树的唯一性 (35分) 给定一个带权无向图,如果是连通图,则至少存在一棵最小生成树,有时最小生成树并不唯一.本题就要求你计算最小生成树的总权重,并且判断其是否唯一. 输入格式: ...

  7. ABAP——系统状态&用户状态修改、查询

    前言:在ABAP开发中有时候会涉及到状态的变更,比如销售订单的系统状态变更未审批->已审批.设备的在运->报废等,在这里就需要用到标准函数I_CHANGE_STATUS.STATUS_CH ...

  8. android测试之monkey测试

    1.首先安装SDK包 2.配置环境变量 3.打开CMD命令窗口,查看是否安装成功 命令:adb version 4.要做monkey测试的安卓包名,获取方式如下(必须启动要获取报名的app) 1.ad ...

  9. 『学了就忘』Linux用户管理 — 50、用户管理相关文件详细说明

    目录 1.用户信息文件 2./etc/shadow影子文件 3./etc/group 组信息文件 4.组密码文件 5.用户的家目录 6.用户邮箱目录 7.用户模板目录 总结: 提示:严格的用户权限划分 ...

  10. javascript-初级-day08

    return <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" ...