在COMMAND WINDOW 内执行: exec test02('00001');
 提示成功,但叁数并没有取到,插入的数为空。但实际查询这个条件是有值的
CREATE OR REPLACE PROCEDURE test02
(ccode    varchar2) IS
   BEGIN 
insert into aptemp3(ccode,debit,credit,balance,) select * from aa where aa.ccode=ccode;   END;

解决方案 »

  1.   

    现在更怪了,无论exec test02(0);什么 值 0或1等,所有数据都插入了
      

  2.   

    变量名称不要和字段名一样,Oracle会分不清哪个是列名哪个是变量,
    解析时会先判断是否有ccode这个字段如果有的话就不会认为ccode是变量了。
    这样就变成
    insert into aptemp3(ccode,debit,credit,balance,)  
    select * from aa where ccode=ccode; --所有数据都会找出来
      

  3.   

    用pl/sql 单步跟踪一下ccode这个值的变化,就能看到是哪里的问题了。
      

  4.   

    两个低级错误,
    1 参数名和字段名重复2 里面也没commit,外面也没说commit,鬼知道是因为没提交看不到还是根本没insert