try:
create or replace procedure insertinbillo(
  BILLNO        VARCHAR2,
  UNITID        NUMBER,
  BILLNAME      VARCHAR2,
  OLDBID        NUMBER,
  OLDINBILLBID  NUMBER) is
cursor lrdate is select bid From Inbilllist where bid<=9999999999;
begin
For cur in lrdate loop
Insert Into Inbill(
    Billno,
    UNITID,
    BILLNAME,
    --Bid   ,
    OLDBID,
    OLDINBILLBID)
  Values(
    BIllno ,
    unitid ,
    BILLNAME,
   -- billbid.nextval,
    OLDBID,
    OLDINBILLBID);
end loop;
end insertinbillo;

解决方案 »

  1.   

    改成:CREATE OR REPLACE PROCEDURE INSERTINBILLO(BILLNO VARCHAR2,
                                              
                                              UNITID       NUMBER,
                                              BILLNAME     VARCHAR2,
                                              OLDBID       NUMBER,
                                              OLDINBILLBID NUMBER) IS
      L_TMP VARCHAR2(200);
      CURSOR LRDATE IS
        SELECT BID FROM INBILLLIST WHERE BID <= 9999999999;
    BEGIN
      OPEN LRDATE;
      FETCH LRDATE
        INTO L_TMP;
      WHILE LRDATE%FOUND LOOP  
        INSERT INTO INBILL
          (BILLNO,
           UNITID,
           BILLNAME,
           --Bid   ,
           OLDBID,
           OLDINBILLBID)
        VALUES
          (BILLNO,
           UNITID,
           BILLNAME,
           -- billbid.nextval,
           OLDBID,
           OLDINBILLBID);
      END LOOP;
      CLOSE LRDATE;
      COMMIT;
    END INSERTINBILLO;