现在的位置: 首页 > 综合 > 正文

游标cursor

2013年09月18日 ⁄ 综合 ⁄ 共 1404字 ⁄ 字号 评论关闭
	/*1、声明游标*/
    declare 
      cursor CUR_SUB_FAULT
      is
        select SUB_FAULT_SHEET_ID, SHEET_STATUS 
        from FB_J_SUB_FAULT_SHEET
        where SHEET_STREAM_NO=V_p_SHEET_STREAM_NO 
        and SHEET_STATUS!=V_new_SUB_FAULT_SHEET_STATUS;
    begin
        /*2、打开游标*/
        open CUR_SUB_FAULT;
        /*3、给第一行数据*/
        fetch CUR_SUB_FAULT into V_SUB_FAULT_SHEET_ID, V_old_SUB_FAULT_SHEET_STATUS;
              /*4、测试是否有数据,并执行循环*/
              While CUR_SUB_FAULT%found  loop
                    if V_new_SUB_FAULT_SHEET_STATUS!=V_old_SUB_FAULT_SHEET_STATUS then
                       /*  将子故障状态置为与大单状态相同  */
                       update FB_J_SUB_FAULT_SHEET 
                       set SHEET_STATUS=V_new_SUB_FAULT_SHEET_STATUS 
                       where SUB_FAULT_SHEET_ID=V_SUB_FAULT_SHEET_ID and SHEET_STATUS!=V_new_SUB_FAULT_SHEET_STATUS ;
                       /*  根据子故障变化修改小单状态  */
                       execute immediate 'call ATUO_CHG_SS_STA_BY_SFS(:V_p_SUB_FAULT_SHEET_ID,:V_p_old_SHEET_STATUS,:V_p_new_SHEET_STATUS)'
                                 using V_SUB_FAULT_SHEET_ID,V_old_SUB_FAULT_SHEET_STATUS,V_new_SUB_FAULT_SHEET_STATUS;
                    end if;
                    /*5、给下一行数据*/
                    fetch CUR_SUB_FAULT into V_SUB_FAULT_SHEET_ID, V_old_SUB_FAULT_SHEET_STATUS;
              /*6、关闭循环*/
              end loop;
        /*7、关闭游标*/
        close CUR_SUB_FAULT;
    end; 

抱歉!评论已关闭.