`
liuhuan1534
  • 浏览: 49842 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

存储过程示例

阅读更多

--------------------------------------
--报案三者车信息
--------------------------------------
create or replace procedure reportAuto()
is
begin
       insert into TBL_REPORT_AUTO
       (N_RPTAUTO_ID,N_RPT_ID,N_CLAIM_ID,C_CASE_NO)
       select S_RPTAUTO_ID.Nextval,
       from clmsys.tbl_clm a;
       --commit;
end;

------------------------------------------------------
--立案*TBL_REGISTERED
------------------------------------------------------
create or replace procedure registered(p_dptCde clmsys.tbl_clm.c_dpt_cde%type)
as
       cursor cur_registered(c_dptCde clmsys.tbl_clm.c_dpt_cde%type) is
       select a.c_clm_no
       from clmsys.TBL_CLMRGST a,clmsys.tbl_clm b
       where a.c_clm_no = b.c_clm_no
       and b.c_end_typ='1' and b.c_clm_mrk = 'I'
       and b.c_dpt_cde = c_dptCde;
begin
       open cur_registered();
       loop
            fetch cur_registered into ;
            if cur_registered%notfound then
               dbms_output.put_line('未发现数据。。。');
               exit;
            else
               --立案主档表
               insert into TBL_REGISTERED
               ()
               values
               ();
              
               --立案保单费用表
               insert into TBL_REGISTERED_FEE
               ()
               values
               ();
            end if;
       end loop;
       close cur_registered;
       commit;
end;

 

----------------------------------------
--查勘定损主档表
----------------------------------------
create or replace procedure surevy(p_dptCde clmsys.tbl_clm.c_dpt_cde%type)
as
       v_dispatchId tbl_dispatch.n_dispatch_id%type;
       v_caseNo tbl_claim.c_case_no%type;
       v_surveyTm tbl_survey.t_survey_tm%type;
       v_surveyAddr tbl_survey.c_survey_addr%type;
       v_remark tbl_survey.c_remark%type;
       v_surveyFee tbl_survey.n_survey_fee%type;
       v_verifyFee tbl_survey.n_verify_fee%type;
       v_agentFee tbl_survey.n_agent_fee%type;
       v_otherFee tbl_survey.n_other_fee%type;
       v_tms tbl_survey.n_tms%type;
       v_operEmpCde tbl_survey.c_operate_emp_cde%type;
       v_operEmpNme tbl_survey.c_operate_emp_nme%type;
       v_operDptCde tbl_survey.c_operate_dpt_cde%type;
       v_operDptNme tbl_survey.c_operate_dpt_nme%type;
       v_state tbl_survey.c_state%type;
       cursor cur_surevy(c_dptCde clmsys.tbl_clm.c_dpt_cde%type) is
       select c.n_dispatch_id,a.c_clm_no,a.c_srvy_addr,d.c_srvy_remark,a.n_sry_fee,a.n_chk_fee,
       a.n_agt_fee,a.n_oth_fee,a.n_srvy_tms,d.c_srvy_cde,e.c_emp_nme,d.c_srvydpt_cde,f.c_dpt_nme,
       decode(d.c_wrk_mrk,'0','3460001','1','3460001','2','3460002','3','3460002','4','3460003',
              '5','3460004','6','3460006')
       from clmsys.TBL_SRVY_BASE a,clmsys.tbl_clm b,tbl_dispatch c,
       clmsys.tbl_srvy_task d,tbl_emp e,tbl_dpt f
       where a.c_clm_no = b.c_clm_no(+)
       and a.c_clm_no = c.c_case_no
       and a.c_clm_no = d.c_clm_no(+)
       and d.c_srvy_cde = e.c_emp_cde
       and d.c_srvydpt_cde = f.c_dpt_cde
       and b.c_end_typ='1' and b.c_clm_mrk = 'I'
       and b.c_dpt_cde = c_dptCde;
begin
       open cur_survey(p_dptCde);
       loop
            fetch cur_survey into v_dispatchId,v_caseNo,v_surveyTm,v_surveyAddr,v_remark,v_surveyFee,
            v_verifyFee,v_agentFee,v_otherFee,v_tms,v_operEmpCde,v_operEmpNme,v_operDptCde,v_operDptNme,
            v_state;
           
            if cur_survey%NOTFOUND then
              dbms_output.put_line('未发现数据。。。');
              EXIT;
            else
              insert into tbl_survey
              (N_DISPATCH_ID,c_case_no,T_SURVEY_TM,C_SURVEY_ADDR,C_REMARK,N_SURVEY_FEE,N_VERIFY_FEE,
              N_AGENT_FEE,N_OTHER_FEE,N_TMS,C_OPERATE_EMP_CDE,C_OPERATE_EMP_NME,C_OPERATE_DPT_CDE,
              C_OPERATE_DPT_NME,C_STATE)
              values
              (v_dispatchId,v_caseNo,v_surveyTm,v_surveyAddr,v_remark,v_surveyFee,v_verifyFee,
              v_agentFee,v_otherFee,v_tms,v_operEmpCde,v_operEmpNme,v_operDptCde,v_operDptNme,v_state);
            end if;
       end loop;
       close cur_survey;
       commit;
end;

 

-----------------------------------
--派工表
-----------------------------------
create or replace procedure dispatch(p_dptCde clmsys.tbl_clm.c_dpt_cde%type)
as
       v_caseNo clmsys.tbl_clm.c_clm_no%type;
       v_dispType tbl_dispatch.c_disp_type%type := '0160001'; --内部派工
       v_dispSubType tbl_dispatch.c_disp_subtype%type;
       v_talCar number;
       v_talThrcar number;
       v_surveyEmpcde tbl_dispatch.c_survey_emp_cde%type;
       v_surveyEmpnme tbl_dispatch.c_survey_emp_nme%type;
       v_surveyDptcde tbl_dispatch.c_survey_dpt_cde%type;
       v_surveyDptnme tbl_dispatch.c_survey_dpt_nme%type;
       v_accdntSpot tbl_dispatch.c_accident_addr%type;
       v_srvyAddr tbl_dispatch.c_survey_addr%type;
       v_lcnNo tbl_dispatch.c_lcn_no%type;
       v_taskStat tbl_dispatch.c_task_stat%type;
       v_dispTm tbl_dispatch.t_disp_tm%type;
       v_dispEmpCde tbl_dispatch.c_disp_emp_cde%type;
       v_dispEmpNme tbl_dispatch.c_disp_emp_nme%type;
       v_dispDptCde tbl_dispatch.c_disp_dpt_cde%type;
       v_dispDptNme tbl_dispatch.c_disp_dpt_nme%type;
       v_surveyAmt tbl_dispatch.n_survey_amt%type;
       v_remark tbl_dispatch.c_remark%type;
       cursor cur_dispatch(c_dptCde clmsys.tbl_clm.c_dpt_cde%type) is
       select a.c_clm_no,a.N_TAL_CAR,a.N_TAL_THRCAR,c.c_srvy_cde,d.c_emp_nme,
              c.c_srvydpt_cde,e.c_dpt_nme,a.c_Accdnt_Spot,c.c_srvy_addr,c.c_lcn_no,
              decode(c.c_wrk_mrk,'0','3460001','1','3460001','2','3460002','3','3460002','4','3460003',
              '5','3460004','6','3460006'),c.t_opr_tm,c.c_opr_man,f.c_emp_nme,c.c_opt_dpt,g.c_dpt_nme,
              a.n_Tal_Los,c.c_srvy_remark
       from clmsys.tbl_srvy_base a,clmsys.tbl_clm b,
            clmsys.tbl_srvy_task c,tbl_emp d,tbl_dpt e,
            tbl_emp f,tbl_dpt g
       where a.c_clm_no = b.c_clm_no
             and a.c_clm_no = c.c_clm_no(+)
             and c.c_srvy_cde = d.c_emp_cde
             and c.c_srvydpt_cde = e.c_dpt_cde
             and c.c_opr_man = f.c_emp_cde
             and c.c_opt_dpt = g.c_dpt_cde
             and b.c_end_typ='1' and b.c_clm_mrk = 'I'
             and b.c_dpt_cde = c_dptCde;
begin
       open cur_dispatch(p_dptCde);
       loop
            fetch cur_dispatch into v_caseNo,v_talCar,v_talThrcar,v_surveyEmpcde,v_surveyEmpnme,v_surveyDptcde,
            v_surveyDptnme,v_accdntSpot,v_srvyAddr,v_lcnNo,v_taskStat,v_dispTm,
            v_dispEmpCde,v_dispEmpNme,v_dispDptCde,v_dispDptNme,v_surveyAmt,v_remark;
             if cur_dispatch%NOTFOUND then
               dbms_output.put_line('未发现数据。。。');
               EXIT;
             else
               if v_talCar>0 then
                  --本车
                  dbms_output.put_line('本车总定损:' || v_talCar);
                  v_dispSubType := '0170003';
                  insert into
                  tbl_dispatch(N_DISPATCH_ID,c_case_no,c_disp_type,c_disp_subtype,C_SURVEY_EMP_CDE,c_survey_emp_nme,
                  c_survey_dpt_cde,c_survey_dpt_nme,c_accident_addr,c_survey_addr,c_lcn_no,C_TASK_STAT,T_DISP_TM,
                  C_DISP_EMP_CDE,c_disp_emp_nme,c_disp_dpt_cde,c_disp_dpt_nme,n_Survey_Amt,C_REMARK)
                  values(S_DISPATCH_ID.Nextval,v_caseNo,v_dispType,v_dispSubType,v_surveyEmpcde,v_surveyEmpnme,
                  v_surveyDptcde,v_surveyDptnme,v_accdntSpot,v_srvyAddr,v_lcnNo,v_taskStat,v_dispTm,
                  v_dispEmpCde,v_dispEmpNme,v_dispDptCde,v_dispDptNme,v_surveyAmt,v_remark);
               elsif v_talThrcar >0 then
                  --三者
                  dbms_output.put_line('三者车总定损:' || v_talThrcar);
                  v_dispSubType := '0170004';
                  insert into
                  tbl_dispatch(N_DISPATCH_ID,c_case_no,c_disp_type,c_disp_subtype,c_survey_emp_cde,c_survey_emp_nme,
                  c_survey_dpt_cde,c_survey_dpt_nme,c_accident_addr,c_survey_addr,c_lcn_no,C_TASK_STAT,T_DISP_TM,
                  C_DISP_EMP_CDE,c_disp_emp_nme,c_disp_dpt_cde,c_disp_dpt_nme,n_Survey_Amt,C_REMARK)
                  values(S_DISPATCH_ID.Nextval,v_caseNo,v_dispType,v_dispSubType,v_surveyEmpcde,v_surveyEmpnme,
                  v_surveyDptcde,v_surveyDptnme,v_accdntSpot,v_srvyAddr,v_lcnNo,v_taskStat,v_dispTm,
                  v_dispEmpCde,v_dispEmpNme,v_dispDptCde,v_dispDptNme,v_surveyAmt,v_remark);
               else
                  --查勘
                  dbms_output.put_line('查勘。。。');
                  v_dispSubType := '0170002';
                  insert into
                  tbl_dispatch(N_DISPATCH_ID,c_case_no,c_disp_type,c_disp_subtype,c_survey_emp_cde,c_survey_emp_nme,
                  c_survey_dpt_cde,c_survey_dpt_nme,c_accident_addr,c_survey_addr,c_lcn_no,C_TASK_STAT,T_DISP_TM,
                  C_DISP_EMP_CDE,c_disp_emp_nme,c_disp_dpt_cde,c_disp_dpt_nme,n_Survey_Amt,C_REMARK)
                  values(S_DISPATCH_ID.Nextval,v_caseNo,v_dispType,v_dispSubType,v_surveyEmpcde,v_surveyEmpnme,
                  v_surveyDptcde,v_surveyDptnme,v_accdntSpot,v_srvyAddr,v_lcnNo,v_taskStat,v_dispTm,
                  v_dispEmpCde,v_dispEmpNme,v_dispDptCde,v_dispDptNme,v_surveyAmt,v_remark);
               end if;
             end if;
       end loop;
       close cur_dispatch;
       commit;
end;

分享到:
评论

相关推荐

    最权威的Orcale存储过程示例

    在提供的压缩包"Oracle存储过程"中,你可能会找到各种类型的存储过程示例,涵盖不同的业务需求和技术实现。通过分析和实践这些示例,你将加深对Oracle存储过程的理解,提高数据库开发能力。记得结合实际场景进行练习...

    oracle 存储过程示例

    oracle 存储过程示例oracle 存储过程示例oracle 存储过程示例oracle 存储过程示例oracle 存储过程示例oracle 存储过程示例oracle 存储过程示例oracle 存储过程示例

    SQL存储过程示例代码

    SQL创建及修改存储过程示例代码,可以让初学者轻松学会创建及删除,修改存储过程等。

    分页存储过程示例系统

    本系统以"分页存储过程示例系统"为标题,意味着它专门展示了如何利用数据库存储过程实现分页功能。 首先,我们需要理解存储过程是什么。存储过程是预编译的SQL语句集合,它们存储在数据库服务器上,可以被多次调用...

    oracle存储过程示例

    这是一个简单的oracle代码,可进行参考

    mysql基础语法&存储过程示例.zip

    本资料“mysql基础语法&存储过程示例.zip”聚焦于MySQL的基础语法和存储过程的实践应用,帮助初学者快速掌握MySQL的核心知识。 一、MySQL基础语法 1. 数据库操作:包括创建数据库(CREATE DATABASE)、查看数据库...

    sql server 2008 存储过程示例带游标

    下面将详细解析标题“sql server 2008 存储过程示例带游标”所涉及的知识点,包括存储过程的创建、游标的使用以及SQL Server 2008中的特性。 ### 存储过程 存储过程是预编译的SQL语句集合,存储在数据库服务器上,...

    SQL简单存储过程示例

    通过这些示例,我们可以看到存储过程如何简化复杂的数据库操作,同时也可以通过`RETURN`、`OUTPUT`参数和Recordset等方式返回结果。在实际开发中,熟练掌握存储过程的使用,可以极大地提升数据库应用程序的效率和...

    C#调用存储过程示例

    本篇将深入探讨如何在C#中调用存储过程,并提供一个简单的示例。 一、为什么要使用存储过程? 1. 性能优化:存储过程在首次执行时被编译为服务器上的可执行代码,后续调用只需执行已编译的版本,减少网络传输和...

    java调用存储过程示例

    本示例将深入探讨如何使用Java来调用存储过程,并处理返回的结果。存储过程是预编译的SQL语句集合,可以提高性能、安全性,并减少网络流量。 首先,确保你已经安装了JDBC驱动,这是Java连接数据库的基础。例如,...

    MySQL 存储过程示例

    user_id,duty_time 排序,分页控制逻辑,四条记录组成一条记录显示,此处一同天的日期为轴,控制分页

    Oracle简单存储过程示例(持续追加)

    在Oracle数据库系统中,存储过程是一种预编译的SQL和PL/SQL代码集合,用于执行特定的任务。在本文中,我们将深入探讨Oracle简单存储过程的创建、调用以及其在数据库管理中的应用。通过理解存储过程,我们可以提高...

    Powerbuilder调用存储过程示例

    PB调用存储过程

    数据库分页存储过程示例

    在这个示例中,我们将深入探讨如何使用存储过程来实现这一功能。 首先,理解分页的基本概念是至关重要的。在数据库中,分页允许用户按指定的大小(每页记录数)浏览数据集的一部分,而不是一次性加载所有数据。这...

    Excel使用ADO调用SQL Server存储过程示例

    后期对于投票结果需要进行一些权重的计算,过程比较复杂,便想到把计算过程放在SQL Server端,使用存储过程实现。但是,在调用存储过程的过程中却遇到了问题,一直无法返回记录集。最后发现问题出现在记录集的...

    java调用oracle存储过程示例+分页示例

    ### Java调用Oracle存储过程与分页示例详解 #### 一、无返回值的存储过程调用 在Java中调用Oracle存储过程时,若该过程无返回值,主要利用`CallableStatement`对象来执行。以下是一个具体的示例: ##### 存储过程...

    Oracle存储过程基本语法及示例

    以下是一个具体的存储过程示例,展示了如何更新表中的序列号: ```sql CREATE OR REPLACE PROCEDURE sp_ply_insrntparlist IS m_appplyno NVARCHAR2(50); i INT; m_name NVARCHAR2(30); BEGIN FOR ply IN ...

Global site tag (gtag.js) - Google Analytics