Oracle编写带数组参数的存储过程

php中文网
发布: 2016-06-07 16:46:56
原创
1245人浏览过

--功能:采用存储过程、type组合来实现批量操作,以节省系统开销,提高效率。 --创建 Type bodies CREATE OR REPLACE TY

--功能:采用存储过程、type组合来实现批量操作,以节省系统开销,提高效率。 
     
--创建 type bodies 
create or replace type type_array as object 

  id    number(10), 
  remark varchar2(10) 

--创建 types 
create or replace type type_array_tbl as table of type_array 
--创建表 
create table t_temp(id number(10) not null, remark number(10)) 
--创建存储过程 
 create or replace procedure proc_array_param(type_object in type_array_tbl) is
   
 begin
  insert into t_temp
    (id, remark)
    select id, remark
      from the (select cast(type_object as type_array_tbl) from dual);
   
  for i in 1 .. type_object.count loop
    delete from t_temp where id = to_number(type_object(i));
  end loop;
  commit;
 end;
   
 end proc_array_param;


--创建包 
CREATE OR REPLACE PACKAGE PKG_PARAM AS 
  TYPE ARRAY_PARAMS IS TABLE OF VARCHAR2(20) INDEX BY BINARY_INTEGER; --先定义包,这个就相当于一个数组 
  PROCEDURE PROC_PARAM(PARAMS IN ARRAY_PARAMS); 
END PKG_PARAM; 
--创建包体 
CREATE OR REPLACE PACKAGE BODY PKG_PARAM AS 
  PROCEDURE PROC_PARAM(PARAMS IN ARRAY_PARAMS) AS 
    I NUMBER := 1; --这个可以不写 
  BEGIN 
    SAVEPOINT SP1; 
    FOR I IN 1 .. PARAMS.COUNT LOOP 
      DELETE FROM T_TEMP WHERE ID = TO_NUMBER(PARAMS(I)); 
    END LOOP; 
    COMMIT; 
  EXCEPTION 
    WHEN OTHERS THEN 
      ROLLBACK TO SAVEPOINT SP1; 
  END PROC_PARAM; 
END PKG_PARAM; 

JRJJ企业网站管理系统
JRJJ企业网站管理系统

企业网站.net管理系统,采用三层结构开发,网页编辑器用的是FCKeditor,数据库操作采用的是存储过程学习作品,参照N-Layered Web Applications with ASP.NET 3.5文章及源码码发

JRJJ企业网站管理系统 0
查看详情 JRJJ企业网站管理系统

linux

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号