循环到游标中,直到oracle中的每个IF-ELSE都为true

循环到游标中,直到oracle中的每个IF-ELSE都为true,oracle,if-statement,stored-procedures,cursor,Oracle,If Statement,Stored Procedures,Cursor,我已经编写了一个游标,希望在其中循环每一列,直到它变为真。所以,如果所有if语句都匹配true,那么我希望将数据插入有效表,或者最后将不正确的数据插入无效表 下面是光标。请让我知道我的步骤是否准确,或者我是否需要对此进行任何更改 创建或替换过程光纤传输有效数据 开始 选择rj_span_id作为输入电流, rj_维护_区域_名称, rj_维护_区域_代码 来自app_fttx。transmedia@sat 环 如果cur\u r.rj\u span\u id>为“

我已经编写了一个游标,希望在其中循环每一列,直到它变为真。所以,如果所有if语句都匹配true,那么我希望将数据插入有效表,或者最后将不正确的数据插入无效表

下面是光标。请让我知道我的步骤是否准确,或者我是否需要对此进行任何更改

创建或替换过程光纤传输有效数据 开始 选择rj_span_id作为输入电流, rj_维护_区域_名称, rj_维护_区域_代码 来自app_fttx。transmedia@sat 环 如果cur\u r.rj\u span\u id>为“0”,则 elsif cur_r.rj_maintenance_zone_name='aa'然后 elsif cur_r.rj_维护区代码='A123',则 插入到有效表中 span\u id、维护\u区域\u名称、rj\u维护\u区域\u代码 值cur_r.rj_span_id、cur_r.rj_维护区域名称、cur_r.rj_维护区域代码; 其他的 插入到无效表中 span\u id、维护\u区域\u名称、rj\u维护\u区域\u代码 值cur_r.rj_span_id、cur_r.rj_维护区域名称、cur_r.rj_维护区域代码; 端环; 端光纤传输有效数据 不是那样的;如果是错误的。看看这个

create or replace procedure fiber_transm_valid_data as 
  l_state_name table_of_states.rj_state_name%type;
begin
  for cur_r in (select rj_span_id, 
                       rj_maintenance_zone_name,
                       rj_maintenance_zone_code,
                       rj_state_name
                from app_fttx.transmedia@sat               
               )
  loop         
    select max(rj_state_name) 
      into l_state_name
      from table_of_states
      where rj_state_name = cur_r.rj_state_name
        and rownum = 1;

    if     cur_r.rj_span_id > '0' 
       and cur_r.rj_maintenance_zone_name = 'aa' 
       and cur_r.rj_maintenance_zone_code = 'A123'
       and l_state_name = 1       
    then       
       INSERT INTO VALID_TABLE 
         (span_id, maintenance_zone_name,rj_maintenance_zone_code)
          values 
         (cur_r.rj_span_id, cur_r.rj_maintenance_zone_name, cur_r.rj_maintenance_zone_code);
    else
        INSERT INTO INVALID_TABLE 
          (span_id, maintenance_zone_name,rj_maintenance_zone_code)
           values 
          (cur_r.rj_span_id, cur_r.rj_maintenance_zone_name, cur_r.rj_maintenance_zone_code);
    end if;       
  end loop;  
end fiber_transm_valid_data;

评论不用于扩展讨论;这段对话已经结束。