您的位置:首页 > 博客中心 > 数据库 >

【转】几个常用的Oracle存储过程

时间:2022-03-14 03:23

http://blog.bossma.cn/database/some-oracle-storing-process/

几个常用的Oracle存储过程

发布时间:2008年1月6日 / 分类: / 7,268 次浏览 / 

初学Oracle,了解了一下Oracle的存储过程,运行了几个例子,做个备忘,方便以后使用:
1、插入数据:
向一张表里插入若干条数据

  0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
  /* 创建表tb1 包含两个字段col1、col2 */ create table tb1( col1 char(20), col2 char(20));   /*插入数据的存储过程*/ CREATE OR REPLACE PROCEDURE INSERTAMOUNTTEST ( ST_NUM        IN     NUMBER,/*起始数值*/ ED_NUM        IN     NUMBER/*结束数值*/ ) IS BEGIN declare        i   number; begin /*循环插入*/ FOR i IN ST_NUM..ED_NUM LOOP INSERT INTO tb1 values(i,‘test‘); END LOOP; end; commit; /*异常处理*/ EXCEPTION WHEN OTHERS THEN rollback; END;   /*在CommondLine下执行*/ exec INSERTAMOUNTTEST(1,2000);

 

2、更新数据

  0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
  CREATE OR REPLACE PROCEDURE UPDATEAMOUNTTEST ( WHERE_NUM IN VARCHAR2/*SQL语句条件值*/ ) IS BEGIN UPDATE tb1 SET col2=‘test2‘ where col1 like WHERE_NUM||‘%‘; /*异常处理*/ EXCEPTION WHEN OTHERS THEN rollback; END;   /*在CommondLine下执行*/ exec UPDATEAMOUNTTEST(‘11‘);

 

3、存储过程之间的调用
以一个查询更新为例子

          C#   0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
  /* 查询更新存储过程,调用更新存储过程UPDATEAMOUNTTEST2 */ CREATE OR REPLACE PROCEDURE SELECTUPDATETEST ( tJStr IN CHAR ) is   upStr CHAR(20); begin /* 查询出要更新的字段值 */ select a.col2 into upStr from tb1 a where a.col1 = tJStr; /* 调用更新存储过程 传入用于更新的两个参数 */ UPDATEAMOUNTTEST2(‘11‘,upStr); end SELECTUPDATETEST;   /* 更新用的存储过程,被SELECTUPDATETEST调用 */ CREATE OR REPLACE PROCEDURE UPDATEAMOUNTTEST2 ( WHERE_NUM IN VARCHAR2,/*更新条件*/ SET_NAME IN VARCHAR2/*更新后的字段值*/ ) IS BEGIN UPDATE tb1 SET col2=SET_NAME where col1 like WHERE_NUM||‘%‘; EXCEPTION WHEN OTHERS THEN rollback; END;

热门排行

今日推荐

热门手游