私は研修生の開発者であり、他の人のコードを担当しているため、私の仕事のほとんどは彼らの作業を変更することになります。Oracle 10g で Report builder を使用しています。
式に次の設定があります。
function get_addressFormula return Char is
begin
if :payee_ctc_id is not null then
begin
 select  a.address
        ,a.address2
        ,a.address3
        ,g.location
            ,g.ppostcode
 into    :address1
        ,:address2
        ,:address3
        ,:address4
        ,:postcode
 from ctc_address a
     ,geo_locations g
 where a.addresstypeid = 1  
 and   a.costcentreid = :payee_ctc_id
 and   g.locationid = a.locationid
 and   a.addressid = (select max(i.addressid)   
                      from  ctc_address i
            where i.costcentreid = :payee_ctc_id
            and   i.addresstypeid = 1);
exception
    when others then
      return null;
    while trim(:address1) is null and (trim(:address2) is not null or trim(:address2)  is not null or trim(:address4) is not null)
    loop
      :address1 := :address2; 
      :address2 := :address3; 
      :address3 := :address4; 
      :address4 := '';
    end loop;
    while trim(:address2) is null and (trim(:address3) is not null or trim(:address4) is not null)
    loop
      :address2 := :address3; 
      :address3 := :address4; 
      :address4 := '';
    end loop;
    while trim(:address3) is null and trim(:address4) is not null
    loop
      :address3 := :address4; 
      :address4 := '';
    end loop;
end;
else
 begin
  <else code>
 end;
 end if;
return 'y';
end;
これは、最後の else ブロックを除くすべての機能です。no_data_found を試しましたが、まだ機能しません。
@トンボーン。どうすればいいのかわかりません。これまでのところ、ほとんど運がなかったので、RAISE でいくつかのグーグルを実行しました。