create or replace procedure Do_Liquidat 
is
  v_cursor clinic.clinic_types.CLINIC_CURSOR;   -- fee_code 游标;
begin
         open v_cursor for '
           select S.*,DECODE(s.sex_code,''1'',(select C.CONSTANT_VALUE
             FROM hisdict.constant_both C
             WHERE c.constant_code = s.sex_code))
           from HISDICT.SEX_DICT S';
end Do_Liquidat;

解决方案 »

  1.   

    修改成:
    begin
     open v_cursor for
     select S.*,C.CONSTANT_VALUE FROM hisdict.constant_both C,HISDICT.SEX_DICT S
     WHERE c.constant_code = s.sex_code and s.sex_code='1';
     open v_cursor1 for
     select S.*,C.CONSTANT_VALUE FROM hisdict.constant_both C,HISDICT.SEX_DICT S
     WHERE c.constant_code = s.sex_code and s.sex_code<>'1';        
    end Do_Liquidat;
      

  2.   

    create or replace procedure Do_Liquidat 
    is
    v_cursor clinic.clinic_types.CLINIC_CURSOR;   -- fee_code 游标;
    str varchar2(500);
    begin
    str:='select S.*,DECODE(s.sex_code,''1'',
                 (select C.CONSTANT_VALUE 
                  FROM hisdict.constant_both C
                 WHERE c.constant_code = s.sex_code))
      from HISDICT.SEX_DICT S';
     open v_cursor for str;
    end Do_Liquidat;