存储过程 

一组用于完成特定数据库功能的SQL语句集,该SQL语句集经过编译后存储在数据库系统中。在使用时候,用户通过指定已经定义的存储过程名字并给出相应的存储过程参数来调用并执行它,从而完成一个或一系列的数据库操作。

包含三部分:过程声明,执行过程部分,存储过程异常(可选)。

示例

create or replace procedure sp_
( p_sResult out integer,--返回值
p_ID in number --ID
)
as
v_id number(16);
cursor v_chac_cr is
select t.money from T001 t where t.sid=p_ID;--游标
begin
open v_chac_cr();
loop
fetch v_chac_cr into v_id;
exit when v_chac_cr%notfound;
insert into F002(cnt) values (v_id);
end loop;
close v_chac_cr;
commit;
p_sResult:=1;
exception--例外处理
when others then
p_sResult:=0;
rollback;
end sp_;  

项目运用

1.获取表下一个ID值

CREATE OR REPLACE PROCEDURE PNEXTID
(
tablename IN VARCHAR2 ,
idno OUT NUMBER
)
IS
sqlstring VARCHAR2 ( 500 );
BEGIN
sqlstring := 'SELECT nvl(max(id),0)+1 FROM ' ||tablename;
execute immediate sqlstring into idno; -- 动态执行
merge into tSequence a using ( select idno as ID, tablename as Name from dual) b --组合成表 merge into 确定表
on (upper(a.Name)=upper(b.Name)) --表名大写化
when matched then update set a.ID= case when b.ID>a.ID then b.ID else a.ID+ 1 end -- update; case when then else end;
when not matched then insert (ID, Name ) values (b.ID,b.Name); --insert;
select ID into idno from tSEQUENCE WHERE upper( name ) = upper(tablename);
EXCEPTION
WHEN OTHERS THEN
idno := - 1 ;
END pNextID;

 2.返回列表数据(游标)

CREATE OR REPLACE PROCEDURE SP_CONTENT (
o_result out types.cursorType, --结果集
ip_pwf in varchar2) --关联流程
as
/* --类型声明是游标变量
create or replace package TestPackage is type outlist is ref cursor;
*/
v_sql varchar2(1000);
vn_count numeric(12,0);
vn_num numeric(12,0);
vn_id numeric(12,0);
vs_table varchar2(30);
vn_inst numeric(12,0);
begin
vn_count:=length(ip_pwf);
vn_num:=instr(ip_pwf,'.');
vn_id:=to_number(substr(ip_pwf,1,vn_num-1));
vs_table:=substr(ip_pwf,vn_num+1,vn_count-vn_num);
begin
v_sql:='select nvl(max(job_code),0) from '||vs_table||' where company = '||vn_id||'';
execute immediate v_sql into vn_inst;
exception
when others then
vn_inst:=0;
end;
open o_result for
select caller,enddate,content from tuser t where class_code < vn_inst;
end SP_CONTENT;

  

 

Oracle 存储过程 PROCEDURE的更多相关文章

  1. Oracle存储过程procedure in、out、in out 模式参数【不发布,纯转】

    Oracle存储过程procedure in.out.in out 模式参数 Oracle存储过程基本语法介绍 注意存过不会自动提交,需要在存过本身添加commit; rollback;等语句

  2. Oracle 存储过程procedure之数据更新-游标

    在日常工作中,经常会碰到后台外导一批数据,并将外导数据处理至系统表中的情况. 面临这种情况,我一般采用写存储过程批处理的方式完成,写好一次以后,再次有导入需求时,只需要将数据导入到中间表,然后执行存储 ...

  3. Oracle存储过程procedure

    --给plsql块设置一个名称保存下来便于调用 /* Create or replace procedure 名称 As 声明变量 Begin //代码块 End; --plsql块 Declare ...

  4. Oracle存储过程Procedure语法及案例

    create or replace procedure replace(desstr in varchar2, replacestr in varchar2, tablename in varchar ...

  5. Oracle job procedure 存储过程定时任务

    Oracle job procedure 存储过程定时任务 oracle job有定时执行的功能,可以在指定的时间点或每天的某个时间点自行执行任务. 一.查询系统中的job,可以查询视图 --相关视图 ...

  6. 【转】Oracle job procedure 存储过程定时任务

    原文:Oracle job procedure 存储过程定时任务 oracle job有定时执行的功能,可以在指定的时间点或每天的某个时间点自行执行任务. 一.查询系统中的job,可以查询视图 --相 ...

  7. Oracle,Sql,procedure 感觉自己写的很棒的一个存储过程

    感觉自己写的很棒的一个Oracle存储过程,(其实想说很叼^,^). 集成了一堆操作数据的功能(至少几十), 包括存储过程执行异常信息输出帮助诊断. 亮点很多, 比如`over(partition b ...

  8. Oracle job procedure 存储过程定时任务(转自hoojo)

    Oracle job procedure 存储过程定时任务 oracle job有定时执行的功能,可以在指定的时间点或每天的某个时间点自行执行任务. 一.查询系统中的job,可以查询视图 --相关视图 ...

  9. oracle 存储过程

    来自:http://www.jb51.net/article/31805.htm Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 I ...

随机推荐

  1. L2-008 最长对称子串 (25 分) (模拟)

    链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805067704549376 题目: 对给定的字符串,本题要求你输出 ...

  2. centos6.8编译安装mysql

    1.安装编译代码需要的包 yum -y install make gcc-c++ cmake bison-devel ncurses-devel 2.创建mysql用户(但是不能使用mysql账号登陆 ...

  3. Date——js 获取当前日期到之后一个月30天的日期区间

    var dateList = []; let startDate = new Date(); let endDate = new Date(); endDate.setDate(startDate.g ...

  4. 如果没有<form>标签,也没有enctype="multipart/form-data"属性,怎么使用formData对象提交表单呢?如下方式

    form标签的enctype属性 enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码. 默认地,表单数据会编码为 "application/x-www-form-urlen ...

  5. 使用Jenkins时,如果GIT_COMMIT无变化,跳过构建

    使用Jenkins时,如果GIT_COMMIT无变化,跳过构建    使用插件: conditional-buildstep A buildstep wrapping any number of ot ...

  6. 2018-2019-2 网络对抗技术 20165323 Exp6 信息搜集与漏洞扫描

    一.实验内容 二.实验步骤 1.各种搜索技巧的应用 2.DNS IP注册信息的查询 3.基本的扫描技术 主机发现 端口扫描 OS及服务版本探测 具体服务的查点 4.漏洞扫描 三.实验中遇到的问题 四. ...

  7. Spring 开发常见问题

    linux 下http 接收中文参数乱码 解决: 在application.yml配置文件中添加 spring: http: encoding: charset: GB2312

  8. youtube去广告

    https://www.digitbin.com/youtube-ads-block/ 1. OGYouTube | Mod AdBlocker YouTube OGYouTube App is a ...

  9. SSM框架搭建后在tomcat部署报错lineNumber: 15; columnNumber: 59; 必须为元素类型 "beans" 声明属性 "xmlns"

    删除applicationContext.xml中的文件头上的这个就可以<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" &q ...

  10. Jfianl框架定时器使用配置

    Jfianl 自2.3版本后就整合了定时器到框架中,赞一个: 下面我来总结下自己使用cron4j到达定时效果的经验,不足之处还请见谅: Cron4jPlugin是作为JFinal的Plugin而存在的 ...