plsql 数据插入处理,怎样过滤掉不需要插入的数据?

plsql 数据插入处理,怎样过滤掉不需要插入的数据?

create or replace NONEDITIONABLE PACKAGE BODY xx_test01 AS

PROCEDURE MAIN_PROC (
    id NUMBER
) IS
     i            VARCHAR2(255);
CURSOR CUR01 IS
    SELECT
        name,
        id,
        sex,
        addr,
        shigoto
    FROM xx_test_wk ;
 BEGIN      
    FOR i IN CUR01 LOOP
        -- 不插入xx_test表
        IF length(i.NAME) > 10 THEN  
           -- flag := flag + 1 ;  ???
        END IF ;
        
        -- 插入xx_test表
        IF i.id > 11111110 THEN
            NULL;
        END IF;  
        
        -- 不插入xx_test表
        IF i.SEX = '0' THEN  
           -- flag := flag + 1 ;  ???
        END IF ;
        
        -- 插入xx_test表
        IF i.ADDR IS NOT NULL THEN
            NULL;
        END IF;  
        
        -- 上面check处理完,在这里统一进行插入处理,怎样将上面不需要插入表中的数据过滤掉
        -- 用flag做处理的话,怎能以最后一个flag的值为判断标准了,没办法涵盖其他check
        INSERT INTO xx_test (
             name,
             id,
             sex,
             addr,
             shigoto) 
         VALUES (
             i.name,   
             i.id,     
             i.sex,    
             i.addr,   
             i.shigoto 
         );              
    END LOOP;
END;  

END xx_test01;