create or replace procedure linquiryfeerate01() is declare
  cursor c is  select  inquiryno, inquiryversion,factorlno, salechnl  from linquiryfeerate_temp;
  emprow linquiryfeerate_temp%rowtype ;  --定义行类型begin
     open c;
      
        
         loop    fetch c into emprow;  
           exit when c%notfound;   
            insert into linquiryfeerate ( inquiryno, inquiryversion,factorlno, salechnl) 
            values (emprow.inquiryno , emprow.inquiryversion ,emprow.factorlno ,emprow.salechnl); 
            dbms_output.put_line(emprow.inquiryno || '---' || emprow.inquiryversion || '---'||emprow.factorlno || '---' ||emprow.salechnl );   
         end loop;        
    close c;end linquiryfeerate01;报错 信息:Error: PLS-00103: 出现符号 ")"在需要下列之一时:
        <an identifier>
          <a double-quoted delimited-identifier> current
Line: 1
Text: create or replace procedure linquiryfeerate01() is求高手帮忙指点下

解决方案 »

  1.   

    create or replace procedure linquiryfeerate01 is --declare
      cursor c is  select  inquiryno, inquiryversion,factorlno, salechnl  from linquiryfeerate_temp;
      emprow linquiryfeerate_temp%rowtype ;  --定义行类型begin
         open c;
          
            
             loop    fetch c into emprow;  
               exit when c%notfound;   
                insert into linquiryfeerate ( inquiryno, inquiryversion,factorlno, salechnl) 
                values (emprow.inquiryno , emprow.inquiryversion ,emprow.factorlno ,emprow.salechnl); 
                dbms_output.put_line(emprow.inquiryno || '---' || emprow.inquiryversion || '---'||emprow.factorlno || '---' ||emprow.salechnl );   
             end loop;        
        close c;end linquiryfeerate01;
      

  2.   

    create or replace procedure linquiryfeerate01 is --declare
      cursor c is  select  inquiryno, inquiryversion,factorlno, salechnl  from linquiryfeerate_temp;
      emprow linquiryfeerate_temp%rowtype ;  --定义行类型begin
         open c;
          
            
             loop    fetch c into emprow;  
               exit when c%notfound;   
                insert into linquiryfeerate ( inquiryno, inquiryversion,factorlno, salechnl) 
                values (emprow.inquiryno , emprow.inquiryversion ,emprow.factorlno ,emprow.salechnl); 
                dbms_output.put_line(emprow.inquiryno || '---' || emprow.inquiryversion || '---'||emprow.factorlno || '---' ||emprow.salechnl );   
             end loop;        
        close c;end linquiryfeerate01;
    这个写法出现以下错误Compilation errors for PROCEDURE LIS.LINQUIRYFEERATE01Error: PLS-00394: wrong number of values in the INTO list of a FETCH statement
      

  3.   

        补充下: 是这段fetch c into emprow;   出现的错误。
      

  4.   

     EMPROW LINQUIRYFEERATE_TEMP%ROWTYPE; --定义行类型这个定义 不能直接 fetch into除非 你这个表 LINQUIRYFEERATE_TEMP  就 INQUIRYNO, INQUIRYVERSION, FACTORLNO, SALECHNL 这 4个字段,否则会报错的。CREATE OR REPLACE PROCEDURE LINQUIRYFEERATE01 IS  --declare
      CURSOR C IS
        SELECT INQUIRYNO, INQUIRYVERSION, FACTORLNO, SALECHNL
          FROM LINQUIRYFEERATE_TEMP;
      EMPROW LINQUIRYFEERATE_TEMP%ROWTYPE; --定义行类型BEGIN  OPEN C;  LOOP
        FETCH C
          INTO EMPROW;
        EXIT WHEN C%NOTFOUND;
        INSERT INTO LINQUIRYFEERATE
          (INQUIRYNO, INQUIRYVERSION, FACTORLNO, SALECHNL)
        VALUES
          (EMPROW.INQUIRYNO,
           EMPROW.INQUIRYVERSION,
           EMPROW.FACTORLNO,
           EMPROW.SALECHNL);
        DBMS_OUTPUT.PUT_LINE(EMPROW.INQUIRYNO || '---' ||
                             EMPROW.INQUIRYVERSION || '---' ||
                             EMPROW.FACTORLNO || '---' || EMPROW.SALECHNL);
      END LOOP;  CLOSE C;
      

  5.   

    V_INQUIRYNO    LINQUIRYFEERATE_TEMP.INQUIRYNO%TYPE;你可以这样定义变量,定义 4个字段的,就可以了。
      

  6.   

    改成for循环吧。 for emprow in  c loop