create or replace procedure sss_sun_test_1 is
    jmj decimal(12,4);
    pkbh integer;
    pxbm integer;
begin
   declare cursor mycursor is 
        Select pk_bh,px_bm,px_jmj from xg_mis.sb_pdxl; 
  open mycursor;
  loop
     fetch mycursor into pkbh,pxbm,jmj;
     update xg_mis.sb_pdxl set px_jmj2=to_char(jmj) 
     where pk_bh=pkbh and  px_bm=pxbm;
     exit when mycursor%NOTFOUND;
  end loop;
  close mycursor;
  end;
  END sss_sun_test_1;

解决方案 »

  1.   

    create or replace procedure sss_sun_test_1 is
        jmj decimal(12,4);
        pkbh integer;
        pxbm integer;
       cursor mycursor is 
            Select pk_bh,px_bm,px_jmj from xg_mis.sb_pdxl for update of xg_mis.sb_pdxl ; 
    begin
      open mycursor;
      loop
         fetch mycursor into pkbh,pxbm,jmj;
         update xg_mis.sb_pdxl set px_jmj2=to_char(jmj) 
         where pk_bh=pkbh and  px_bm=pxbm;
         exit when mycursor%NOTFOUND;
      end loop;
      close mycursor;
      
    END sss_sun_test_1;
      

  2.   

    thank you ,let me have a try
      

  3.   

    Compilation errors for PROCEDURE SYSTEM.SSS_SUN_TEST_1Error: PLS-00103: 出现符号 "END"
    Line: 17
    Text: END sss_sun_test_1;这是什么意思?
      

  4.   

    create or replace procedure sss_sun_test_1 
    is
        jmj number(12,4);
        pkbh integer;
        pxbm integer;   cursor mycursor is 
            Select pk_bh,px_bm,px_jmj from xg_mis.sb_pdxl; 
    begin
      open mycursor;
      loop
         fetch mycursor into pkbh,pxbm,jmj;
         exit when mycursor%NOTFOUND;
         update xg_mis.sb_pdxl set px_jmj2=to_char(jmj) 
         where pk_bh=pkbh and  px_bm=pxbm;
         
      end loop;
      close mycursor;
    end;
    /
      

  5.   

    end;
    END sss_sun_test_1;
    着两句任删一句ok.
      

  6.   

    cursor的定义应放在begin 之前
      

  7.   

    下面是出现的提示:
    Compilation errors for PROCEDURE SYSTEM.SSS_SUN_TEST_2Error: PLS-00201: 必须说明标识符 'XG_MIS.SB_PDXL'
    Line: 7
    Text: Select pk_bh,px_bm,px_jmj from xg_mis.sb_pdxl;Error: PL/SQL: SQL Statement ignored
    Line: 7
    Text: Select pk_bh,px_bm,px_jmj from xg_mis.sb_pdxl;Error: PLS-00320: 此表达式的类型说明不完整或格式错误
    Line: 7
    Text: Select pk_bh,px_bm,px_jmj from xg_mis.sb_pdxl;Error: PL/SQL: SQL Statement ignored
    Line: 11
    Text: fetch mycursor into pkbh,pxbm,jmj;Error: PLS-00201: 必须说明标识符 'SB_PDXL'
    Line: 13
    Text: update xg_mis.sb_pdxl set px_jmj2=to_char(jmj)Error: PL/SQL: SQL Statement ignored
    Line: 13
    Text: update xg_mis.sb_pdxl set px_jmj2=to_char(jmj)
      

  8.   

    xg_mis.sb_pdxl  --创建此表时是否加了双引号
      

  9.   

    我用SQL语句查询时这个可以用