`
汉唐铁骑破虏用刀
  • 浏览: 32620 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

常用的存储过程和触发器范例

阅读更多
一些常用的数据库脚本,需要的时候可以照葫芦画瓢

CREATE OR REPLACE PROCEDURE mdmc_spDeleteRole(v_RoleID number, v_tablepostfix varchar2)
AS
        v_Pos         number(12);
  v_postfix     varchar2(100);
  v_postfixes   varchar2(1000);
  v_sql         varchar2(3000);
  v_tablename   varchar2(1000);
  v_separator   varchar2(1);
BEGIN
  v_separator   := CHR(7);

  delete from ECONF_ROLE where id = v_RoleID;

  v_postfixes   := v_tablepostfix;
  v_pos         := INSTR(v_tablepostfix, v_separator);

  WHILE (v_pos >1) LOOP
    v_postfix   := SUBSTR(v_postfixes,1,v_pos -1);
    v_postfixes := SUBSTR(v_postfixes,v_pos + 1);
    v_tablename := 'econf_rolevisual_'||v_postfix;
    v_sql       := 'delete from '||v_tablename||' where id = '||TO_CHAR(v_RoleID)||'';
    execute immediate v_sql;
    v_pos       := INSTR(v_postfixes, v_separator);
  END LOOP;

  delete from ECONF_ROLE_PERMISSION where ROLEID = v_RoleID;

  COMMIT;
  EXCEPTION
        WHEN others THEN
                rollback;
END mdmc_spDeleteRole;


create or replace procedure p_tnamemap
(
    i_OldName       in      varchar2,   --
    o_NewName       out     varchar2    --
)
authid current_user
as
    i_Count         integer;
    i_Flag          integer;
    i_Count2        integer;
    i_Count3        integer;
    v_NewName       varchar2(100);

begin
    --
    i_Count2 := length(i_OldName);

    if (i_Count2 > 2) then
        i_Count3 := 2;
    else
        i_Count3 := i_Count2;
    end if;

    --
    --lock table t_tnamemap in exclusive mode;

    select count(*)
      into i_count
      from t_tnamemap
     where oldname =  upper(i_oldname);

    --
    if i_Count = 0 then
        select trigger_name_se.nextval
          into i_flag
          from dual;
        v_NewName := substr(i_OldName, 1, i_Count3);
        v_NewName := v_NewName || to_char(i_Flag);

        insert into t_tnamemap
                  ( oldname,
                    newname
                  )
             values
                  ( upper(i_oldname),
                    upper(v_newname)
                   );
        o_NewName := v_NewName;
    elsif i_Count = 1 then
        select newname
          into v_NewName
          from t_tnamemap
         where oldname = upper(i_OldName);
        o_NewName := v_NewName;
    end if;

    commit;
end;


//带返回值存储过程
create or replace procedure P_CLEAN_ROUTER
(
    i_OprID         in      integer,    --
    o_RerurnCode    out     integer     --
)
as
  v_Size         integer;

begin
    select count(*) into v_size
    from  t_router_control
    where oprid = i_OprID;

    if  v_Size = 0 then
        delete from t_syncdata_see where oprid = i_OprID;
    end if;

    o_RerurnCode := 0;
    commit;

exception
  when others then
  o_RerurnCode := -1;
end;


//自动插入数据
create or replace procedure autoadd_met_record(v_addnum in number) as
  v_temp number(12);

begin
  v_temp := 0;

  while (v_temp < v_addnum) loop
        insert into cw_mtg
    values
      (seq_econf_cw_mtg.NEXTVAL,
       'test' || seq_econf_cw_mtg.currval,
       '',
       0,
       '100000' || seq_econf_cw_mtg.currval,
       '111111',
       0,
       '1',
       0,
       0,
       208,
       71,
       71,
       71,
       0,
       '2011-11-10 04:50:00',
       '2011-11-10 05:50:00',
       '2011-11-10 06:50:00',
       30,
       0,
       2000,
       16,
       16,
       8,
       1,
       1000,
       '02',
       '00100',
       '100011110000',
       'test',
       '',
       '000000000011110000',
       '',
       0,
       '1',
       '15',
       1,
       '46005|14397|35881',
       1,
       0,
       0,
       0,
       '',
       '',
       0,
       0,
       0,
       'F2011111010419',
       '',
       '12345678',
       '',
       0,
       0,
       'UTC+0800');
    v_temp := v_temp + 1;
  end loop;
  commit;
EXCEPTION
  WHEN others THEN
    rollback;
END autoadd_met_record;



create or replace procedure autoadd_met_record(v_addnum in number)
as
v_temp      number(12);
v_seq       number(12);
begin
v_temp := 0;
while(v_temp < v_addnum) loop
select seq_econf_cw_mtg.NEXTVAL into v_seq from dual;
insert into cw_mtg values(v_seq,'test','testpwd',0,'111111',0,'1',5,0,208,0,6,6,6,0,sysdate,sysdate,sysdate,30,0,2000,16,16,8,1,1000,'02','02100','100011110000','test','','000000000011110000','',0,'1','15',1,'46005|14397|35881',1,0,30,0,'','',0,0,0,'0','','12345678','',0,0,'UTC+0800');
v_temp := v_temp + 1;
end loop;
commit;
EXCEPTION
WHEN others THEN
rollback;
END autoadd_met_record;


//自动插入主键ID
CREATE OR REPLACE TRIGGER BATCHLOGID_TRIG
        BEFORE INSERT ON ECONF_IMS_BATCHLOG
        REFERENCING NEW AS new OLD AS old FOR EACH ROW
BEGIN

        SELECT ims_batchlog_seq.NextVal INTO :new.IDX FROM dual;

END BATCHLOGID_TRIG;

触发器
//一些典型的操作

create or replace trigger econf_enterprise_t1 after insert or delete
on ECONF_ENTERPRISE_INFO
for each row

begin
  if inserting then
   update LBU_SYS_CONFACCOUNT set ISOPEN=1 where ACCOUNTID=:NEW.account;
  end if;

  if deleting then
         update LBU_SYS_CONFACCOUNT set ISOPEN=0 where ACCOUNTID=:OLD.account;
       delete from ECONF_ACCOUNT_INFO where ENTERPRISEID= :OLD.ENTERPRISEID;
       delete from contacts where username = :OLD.account;
       delete from groups where username = :OLD.account;
               delete from groupmembers where username= :OLD.account;
  end if;
end;


分享到:
评论

相关推荐

    ASP.NET程序开发范例宝典 第10章 视图、存储过程及触发器的应用

    内容包括搭建ASP.NET开发环境、HTML开发与实践、CSS样式与JavaScript脚本应用、常用Web服务器控件、验证控件、高级Web服务器控件、ADO.NET技术、数据绑定技术、SQL查询相关技术、视图、存储过程及触发器的应用、ASP...

    常用文档范例

    3. **数据库设计文档**:数据库设计文档描述了数据模型、表结构、关系、索引、存储过程和触发器等数据库组件的设计。它包括概念数据模型(ER图)、逻辑数据模型和物理数据模型,这些模型分别对应于业务概念、数据库...

    ASP.NET程序开发范例宝典 第4章 常用Web服务器控件

    内容包括搭建ASP.NET开发环境、HTML开发与实践、CSS样式与JavaScript脚本应用、常用Web服务器控件、验证控件、高级Web服务器控件、ADO.NET技术、数据绑定技术、SQL查询相关技术、视图、存储过程及触发器的应用、ASP...

    ASP.NET程序开发范例宝典.part1

    内容包括搭建ASP.NET开发环境、HTML开发与实践、CSS样式与JavaScript脚本应用、常用Web服务器控件、验证控件、高级Web服务器控件、ADO.NET技术、数据绑定技术、SQL查询相关技术、视图、存储过程及触发器的应用、ASP...

    ASP.NET 程序开发范例宝典 (第三版)源代码

    视图、存储过程及触发器的应用,ASP.NET内置对象,文件处理,图形图像与多媒体,水晶报表与打印,XML技术,Web Service,AJAX应用开发,ASP.NET高级应用,ASP.NET安全机制,网站设计与网页配色。全书共提供了480个...

    SQL应用开发范例宝典:SQL应用开发范例宝典.iso (源码光盘)

    内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、...存储过程和函数、使用游标、使用触发器、事务处理、安全性控制、SQL高级特性、数据库对象查询、数据库安全与维护和嵌入式SQL等...

    SQL_SERVER应用与开发范例宝典_12357672.part2

    内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、...存储过程和函数、使用游标、使用触发器、事务处理、安全性控制、SQL高级特性、数据库对象查询、数据库安全与维护和嵌入式SQL等...

    SQL范例宝典(书中配套光盘内容)

    8. **触发器和规则**:触发器是一种特殊的存储过程,会在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时自动执行。规则则是定义数据输入和更新的限制,确保数据的完整性。 9. **备份与恢复**:SQL 2005提供了...

    ASP.NET 程序开发范例宝典 (第三版)PART 1 源代码

    数据绑定技术,SQL查询相关技术,视图、存储过程及触发器的应用,ASP.NET内置对象,文件处理,图形图像与多媒体,水晶报表与打印,XML技术,Web Service,AJAX应用开发,ASP.NET高级应用,ASP.NET安全机制,网站设计...

    《SQLserver数据库》课程设计范例.pdf

    然后,我们将使用存储过程来实现一些常用的查询操作,例如查询当月书店销售金额、营业金额等。 数据库应用 数据库应用是指使用数据库系统来解决实际问题的过程。在本设计方案中,我们将使用小型书店管理系统来解决...

    ASP.NET程序开发范例宝典4

    内容包括搭建ASP.NET开发环境、HTML开发与实践、CSS样式与JavaScript脚本应用、常用Web服务器控件、验证控件、高级Web服务器控件、ADO.NET技术、数据绑定技术、SQL查询相关技术、视图、存储过程及触发器的应用、ASP...

    ASP.NET程序开发范例宝典5

    内容包括搭建ASP.NET开发环境、HTML开发与实践、CSS样式与JavaScript脚本应用、常用Web服务器控件、验证控件、高级Web服务器控件、ADO.NET技术、数据绑定技术、SQL查询相关技术、视图、存储过程及触发器的应用、ASP...

    ASP.NET程序开发范例宝典2

    内容包括搭建ASP.NET开发环境、HTML开发与实践、CSS样式与JavaScript脚本应用、常用Web服务器控件、验证控件、高级Web服务器控件、ADO.NET技术、数据绑定技术、SQL查询相关技术、视图、存储过程及触发器的应用、ASP...

    ASP.NET程序开发范例宝典3

    内容包括搭建ASP.NET开发环境、HTML开发与实践、CSS样式与JavaScript脚本应用、常用Web服务器控件、验证控件、高级Web服务器控件、ADO.NET技术、数据绑定技术、SQL查询相关技术、视图、存储过程及触发器的应用、ASP...

    SQL_SERVER应用与开发范例宝典_12357672.part3

    内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、...存储过程和函数、使用游标、使用触发器、事务处理、安全性控制、SQL高级特性、数据库对象查询、数据库安全与维护和嵌入式SQL等...

    《SQLserver数据库》课程设计范例.doc

    - 存储过程和触发器:定义常用查询为存储过程,简化操作;设置触发器以实现数据更新时的自动处理。 - 索引:创建索引来优化查询性能,提高数据检索速度。 - 权限管理:设定不同用户对数据库的访问权限,保证数据...

    ASP.NET程序开发范例宝典(C#)(第2版part1

    涵盖了搭建ASP.NET开发环境、HTML开发与实践、CSS样式与JavaScript脚本应用、常用Web服务器控件、验证控件、高级Web服务器控件、ADO.NET技术、数据绑定技术、SQL查询相关技术、视图、存储过程及触发器的应用、ASP...

    ASP.NET程序开发范例宝典 第19章 综合实例

    内容包括搭建ASP.NET开发环境、HTML开发与实践、CSS样式与JavaScript脚本应用、常用Web服务器控件、验证控件、高级Web服务器控件、ADO.NET技术、数据绑定技术、SQL查询相关技术、视图、存储过程及触发器的应用、ASP...

    SQL_SERVER应用与开发范例宝典_12357672.part1

    内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、...存储过程和函数、使用游标、使用触发器、事务处理、安全性控制、SQL高级特性、数据库对象查询、数据库安全与维护和嵌入式SQL等...

    ASP.NET程序开发范例宝典 第15章 XML技术

    内容包括搭建ASP.NET开发环境、HTML开发与实践、CSS样式与JavaScript脚本应用、常用Web服务器控件、验证控件、高级Web服务器控件、ADO.NET技术、数据绑定技术、SQL查询相关技术、视图、存储过程及触发器的应用、ASP...

Global site tag (gtag.js) - Google Analytics