当一个存储过程调用时向其他不同的那个表中添加相同的数据,
create or replace procedure P_WM_ComDeman_EMG(v_djbh varchar2)
/*
           需求计划完成处理
           v_djbh 单据编号
  */
 as
  v_deptid   varchar2(100);
  v_specid   varchar2(100);
  v_NeedType varchar2(100);
  V_UseDept  varchar2(100);
  v_editor   varchar2(100);
  v_BillYear varchar2(100);
  v_billmonth varchar2(100);
  v_deptid2   varchar2(100);
  v_deptname2 varchar2(100);
begin
  select deptid, specid, NeedType, UseDept, Editor,BillYear,billmonth,deptid2,deptname2
    into v_deptid, v_specid, v_NeedType, V_UseDept, v_editor,v_BillYear,v_billmonth,v_deptid2,v_deptname2
    from WM_MATDEMAND_EMG
   where billid = v_djbh;  --设置明细完成状态 和 冗余部门编号,专业名称,需求类别
  update WM_MATDEMANDLIST_EMG
     set
         deptid   = v_deptid,
         iscom    = 1,
         specid   = v_specid,
       --NeedType = v_NeedType,
         UseDept  = V_UseDept,
         Editor   = v_editor,
         BillYear=v_BillYear,
         billmonth=v_billmonth,
         deptid2  = v_deptid2,
         deptname2= v_deptname2
   where Billguid = v_djbh;  --设置完成状态
  update WM_MATDEMAND_EMG set iscom = 1 where BillID = v_djbh;  ------向采购主表中插数据
            insert into WM_MATORDERPLAN(depid,depname,Editor,Billyear,Billmonth,Org2l,iscom)  values(v_depid,V_UseDept,v_editor,v_BillYear,v_billmonth,v_deptname2,1);
         ---向采购明细表中插数据     
       insert into WM_MATORDERLIST(purchaser,物资类别,Billyear,Billmonth,iscom) values(v_depid,V_UseDept,v_BillYear,v_billmonth,1)
       
end;
为什么下面2个insert 语句插不进去。

解决方案 »

  1.   

    建议写一个Exception看看错误是什么
      

  2.   

    是否是因为没有提交。
    如果不是提交的问题,可以用sql%rowcount慢慢调试看是否Insert成功。
      

  3.   

    采购主表:
    BILLID VARCHAR2(50)         N
    BILLSTATE VARCHAR2(50) Y
    BILLYEAR VARCHAR2(10) Y
    BILLMONTH VARCHAR2(10) Y
    PAMOUNT NUMBER(38)         Y
    USERID VARCHAR2(50)         Y
    USERDATE VARCHAR2(10) Y
    EDITOR VARCHAR2(50)         Y
    EDITNAME VARCHAR2(50) Y
    EDITDATE VARCHAR2(50) Y
    REMARK VARCHAR2(500) Y
    DEPID VARCHAR2(50) Y
    DEPNAME VARCHAR2(50) Y
    部长 VARCHAR2(50) Y
    ISCOM NUMBER(12) Y
    LEADER VARCHAR2(50) Y
    ORG2L VARCHAR2(50) Y
    物资类别 VARCHAR2(50) Y
    GUID VARCHAR2(40) N采购明细表:
    BILLGUID VARCHAR2(50) N
    MATCODE VARCHAR2(50)         N
    MATNAME VARCHAR2(50)         Y
    MATTYPE VARCHAR2(200)         Y
    MATUNIT VARCHAR2(50)         Y
    PURCHASEWAY VARCHAR2(50) Y
    PURCHASEDATE VARCHAR2(10) Y
    PURCHASER VARCHAR2(50) Y
    PLANPRICE NUMBER(38,2) Y
    PLANCOUNT NUMBER(38,2) Y
    PLANAMOUNT NUMBER(38,2) Y
    REMARK VARCHAR2(500)         Y
    CURCOUNT NUMBER(38,2) Y
    LBOUND NUMBER(38,2)         Y
    NEEDCOUNT NUMBER(38,2) Y
    ORDERNUM NUMBER(38,2) Y
    ISCOM NUMBER(12)         Y
    AIDCODE VARCHAR2(50)         Y
    ARVCOUNT NUMBER(38,2) Y
    INCOUNT NUMBER(38,2)         Y
    BILLYEAR VARCHAR2(50) Y
    BILLMONTH VARCHAR2(50) Y
    物资类别 VARCHAR2(50) Y
    APPLY VARCHAR2(50) N
    ARVGUID VARCHAR2(50) Y
    GUID VARCHAR2(40) N 2张表是通过billguid billid 来关联的   Y是可以为空  N是不可为空。
      

  4.   

    采购主表:
    BILLID VARCHAR2(50) N 
    GUID VARCHAR2(40) N采购明细表:
    BILLGUID VARCHAR2(50) N 
    MATCODE VARCHAR2(50) N 
    APPLY VARCHAR2(50) N 
    GUID VARCHAR2(40) N
      

  5.   

    Oracle中   同时向主表和明细表插入数据  这个存储过程怎么谢谢呢?  谢谢!!!
      

  6.   

      insert into WM_MATORDERPLAN(depid,depname,Editor,Billyear,Billmonth,Org2l,iscom) values(v_depid,V_UseDept,v_editor,v_BillYear,v_billmonth,v_deptname2,1);  insert into WM_MATORDERLIST(purchaser,物资类别,Billyear,Billmonth,iscom) values(v_depid,V_UseDept,v_BillYear,v_billmonth,1)其中v_depid名称写错了吧??应该是v_deptid??