这样行不行:
  Create procedure AreaInsert
  ( P_AreaId OUT NUMBER,     
    P_AreaName  IN VARCHAR2 )  
    IS BEGIN     
     l_id      idg_user.areaid%type;
    select idg_user.areaid.nextval into l_id;
    INSERT INTO IDG_USER.Area 
    VALUES (   l_id,    
               P_AreaName);
   P_AreaId := l_id;
   END;

解决方案 »

  1.   

    Create procedure AreaInsert
      ( P_AreaId OUT NUMBER,     
        P_AreaName  IN VARCHAR2 )  
        IS BEGIN     
     
        P_AreaId := idg_user.AREAID.nextval;
        INSERT INTO IDG_USER.Area 
        VALUES (   P_AreaId ,    
                   P_AreaName);
       
       END;
      

  2.   

    Create procedure AreaInsert
      ( P_AreaId OUT NUMBER,     
        P_AreaName  IN VARCHAR2 )  
        IS BEGIN     
     
        INSERT INTO IDG_USER.Area 
        VALUES (   idg_user.AREAID.nextval ,    
                   P_AreaName);
       P_AreaId := idg_user.AREAID.curval;
       END;想知道idg_user是什么东东!
      

  3.   

    主要是P_AreaId如何得到idg_user.AreaId这个序列的当前的value,
    我写的:
    P_AreaId := idg_user.AreaId.currval;
    但这样不对,哪位可以帮帮我,急,谢谢!!!
      

  4.   

    sorry,变量是这样赋值:Create procedure AreaInsert
      ( P_AreaId OUT NUMBER,     
        P_AreaName  IN VARCHAR2 )  
        IS BEGIN     
     
        INSERT INTO IDG_USER.Area 
        VALUES (   idg_user.AREAID.nextval ,    
                   P_AreaName);
       select idg_user.AREAID.curval into P_AreaId from dual;
       END;