REP-1401:'cf_1formula': Fatal PL/SQL error occured, ORA-01403: no data fou

hi,
my report is giving error REP-1401:'cf_1formula': Fatal PL/SQL error occured,
ORA-01403: no data found
There are two table emp1 and emp2 created from employees table from HR schema
I have deleted some records from table emp2 where department id is 110
main query is
select employee_id, first_name, department_id from emp1
now i created a foumula column
function CF_1Formula return Number is
dept number;
begin
select department_id into dept from emp2 where employee_id = :employee_id;
return(dept);
end;
the above error is given when report is run. i tried
exception
when_no_data_found then
dept:=000
but problem is not solved
i want to disply any number in this foumula column if the record is not found

M. Khurram Khurshid wrote:
exception
when_no_data_found then
dept:=000try this code in formula
function CF_1Formula return Number is
dept number;
begin
select department_id into dept from emp2 where employee_id = :employee_id;
if dept is not null then
return(dept);
else
return 0;
end if;
end; Hope this will help you...
If someone response is helpful or correct please, mark is accordingly.

Similar Messages

  • REP-1401: 'no_daysformula':Fatal PL/SQL error occured. ora-06503: PL/SQL : Functio returned without value. REP-0619: You cannot run without a layout.

    Hi everyone.
    Can anyone tell me what is wrong in this code below?
    Code:
    function NO_DAYSFormula return Number is
    begin
      IF TO_CHAR(TO_DATE(:P_FR_DT, 'DD-MM-RRRR'), 'RRRR') =TO_CHAR(TO_DATE(:ACCT_OPN_DT, 'DD-MM-RRRR'), 'RRRR')
      AND :P_TO_DT<:MATURITY_DATE
      AND :ACCT_OPN_DT>:P_FR_DT
      THEN RETURN (:P_TO_DT-:ACCT_OPN_DT+1);
      ELSIF TO_CHAR(TO_DATE(:P_FR_DT, 'DD-MM-RRRR'), 'RRRR') =TO_CHAR(TO_DATE(:ACCT_OPN_DT, 'DD-MM-RRRR'), 'RRRR')
      AND :P_TO_DT<:MATURITY_DATE
      AND :ACCT_OPN_DT<:P_FR_DT
      THEN RETURN (:P_FR_DT-:P_TO_DT+1);
      ELSIF TO_CHAR(TO_DATE(:P_FR_DT, 'DD-MM-RRRR'), 'RRRR') =TO_CHAR(TO_DATE(:ACCT_OPN_DT, 'DD-MM-RRRR'), 'RRRR')
       AND :P_TO_DT>:MATURITY_DATE
       AND :ACCT_OPN_DT<:P_FR_DT
      THEN RETURN (:P_FR_DT-:MATURITY_DATE+1);
      END IF;
    END;
    It gets compiled successfully but when i run the report, i get 2 errors.
    Error 1:
    REP-1401: 'no_daysformula':Fatal PL/SQL error occurred.
    ora-06503: PL/SQL : Function returned without value.
    Error 2:
    REP-0619: You cannot run without a layout.
    Should i use only 1 return statement?
    Can i use as many return statements as i want?
    What is the exact mistake? Please let me know.
    Thank You.

    Let me clear you the first thing...
    If you get any fatal errors while running the report (e.g., function returned without value,no value etc.,) the report will show
    REP-0619: You cannot run without a layout.
    So you just correct the function 'no_daysformula' .
    First of all you run the report without that formula column.
    If it works fine then , Check the return value of your formula column (Your formula column properties --> Return value --> value (It will be DATE as i think so).
    As function will always return a single value, Check your formula 'no_daysformula' returns the same.
    declare a return variable say for example..
    DECLARE
    V_DATE DATE;
    BEGIN
    --YOUR CODE---
    RETURN V_DATE := (RETURN VALUE)
    END;
    Last but not least ... use Else condition to return (NULL or any value ) in your code and check..
    If any Problem persists let me know
    Regards,
    Soofi.

  • REP-1401: 'cf_1formula': Fatal PL/SQL error occurred.

    Hi all,
    I am using the barcodes example which is on otn.
    I am getting the result on the development side which is my local set-up. (windows-2000) and i am using Report Builder 9.0.4.0.21.
    I am able to see the barcode.
    If i try the same thing on my deployment side which on my AS(Application server) which on UNIX platform .
    I am getting the below error....
    REP-1401: 'CF_1FORMULA0031': Fatal PL/SQL error occurred.
    ORA-39565: Message 39565 not found; product=RDBMS; facility=ORA
    I had gone thru metalinks and i found few docks saying change of width of file_name
    I am enclosing the details
    the below is the change i did in rep_<server>.conf
    <engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1" maxEngine="1" minEngine="0" engLife="50" maxIdle="30" callbackTimeOut="60000" classPath="$ORACLE_HOME/reports/jlib/oraclebarcode.jar">
    and i had made an entry in reports.sh as mentioned in one of the docs in metalinks.
    and i had changed the width of
    myfilename varchar2(20);
    to
    myfilename varchar2(256);
    and CF_1 width to same
    The code in
    function CF_1FORMULA0031 return Char is
    myfilename varchar2(256);
    result varchar2(20);
    barcodeData VarChar2(50) := :order_ID;
    begin
         myFileName := srw.create_temporary_filename;
    barcodemaker.setBarWidthInch(globals.bcobj, 0.005);
    barcodemaker.setBaseCodeData(globals.bcobj,barcodeData);
    barcodemaker.setBarCodeType(globals.bcobj,globals.barcode_to_use);
    myfilename := barcodeData;
    barcodemaker.setFullPath(globals.bcobj, myFileName);
    barcodemaker.renderBarCode(globals.bcobj);
    return(myfilename);
    end;
    and i had opened the trace on and my trace says the below....
    [2004/4/9 8:10:50:171] Debug 50103 (EngineManager:spawnEngine): Start engine command line = $ORACLE_HOME/bin/rwengine.sh -server -cp $ORACLE_HOME/reports/jlib/oraclebarcode.jar:$ORACLE_HOME/j2ee/home/lib/ojsp.jar:$ORACLE_HOME/reports/jlib/rwrun.jar:$ORACLE_HOME/jlib/zrclient.jar -Xbootclasspath/p:$ORACLE_HOME/vbroker4/lib/vbjboot.jar -Duser.language=en -Duser.region=US -Xmx256M oracle.reports.engine.RWEngine name=rwEng-0 server=rep ORACLE_HOME=/ora10g engineimplclass=oracle.reports.engine.EngineImpl traceopts=trace_all tracefile=$ORACLE_HOME/reports/logs/rep/rwEng-0.trc tracemode=trace_replace cacheDir=$ORACLE_HOME/reports/cache
    which means the server is picking the jar files....
    can any one tell me what can be the issue......
    Advise me at the earliest................
    cheers,
    ALI

    Hi Aamir,
    The problem is that divisor by 0 (zero) is not possible.
    So you need to make sure that in your calculation there's no division by zero.
    In your case :bugamt is equal to zero then you will get this error.
    So just make sure that :bugamt is not equal to zero.
    You can do this as follows:
    function avggFormula return Number is begin
    IF :bugamt != 0 THEN
    :cp_1 := (:bugamt-nvl(:totexp,0)/:bugamt)*100 ;
    END IF;
    return(:cp_1);
    end;
    Regards
    Arif

  • Rep-1401: 'beforereport': Fatal PL/SQL error occured

    Hi all
    I am working in Oracle reports 6i.
    in my report i hav two program units.
    iam calling them in before report trigger. Then iam getting the following error
    rep-1401: 'beforereport': Fatal PL/SQL error occured
    ORA-03120: two-task conversion routin: integer overflow
    and if i call any one of them they are working fine.
    whenever i call two of them at a time iam getting above error.
    can anybody help me.....

    in the before report trigger check the code where u r assigning value to a variable...like fetching cursor into some variable......or assigning to any variable and there the variable must be smaller than the value being assigned to it....

  • See this error in report REP-1401: cf_1formula: Fatal PL/SQL errir occurred

    hi mater
    sir i use oracel reprot 6i
    i try to use formula for calculation see
    function avggFormula return Number is begin
    :cp_1 := (:bugamt-nvl(:totexp,0)/:bugamt)*100 ;
    return(:cp_1);
    end;
    this formula complie rightly no error
    but when i run my report
    that give me this error
    REP-1401: 'cf_1formula': Fatal PL/SQL errir occurred.
    ORA-01476: divisor is equal to zero
    please give me idea how i solve my this error
    thank;
    aamir

    Hi Aamir,
    The problem is that divisor by 0 (zero) is not possible.
    So you need to make sure that in your calculation there's no division by zero.
    In your case :bugamt is equal to zero then you will get this error.
    So just make sure that :bugamt is not equal to zero.
    You can do this as follows:
    function avggFormula return Number is begin
    IF :bugamt != 0 THEN
    :cp_1 := (:bugamt-nvl(:totexp,0)/:bugamt)*100 ;
    END IF;
    return(:cp_1);
    end;
    Regards
    Arif

  • REP-1401 'beforereport' Fatal PL/SQL error occurred. ORA 00000 normal.

    Hi,
    I am running the report Journals - General (132 char)- file name GLRGNJ.rdf from
    Oracle Report Builder 6.0.8.11.3.
    I have commented all the (srw.user_exit) in the Before Report trigger but i still
    get the message:
    REP-1401 'beforereport' Fatal PL/SQL error occurred. ORA 00000 normal,
    successful completion.
    Can anyone suggest a solution please?
    Thanks,
    Faris

    Dear sir, i am created one formula column in Reports6i and the following error has come. Could u please find out a solution. Thanks in advance.
    my function is below
    function CF_Branch_NameFormula return Char is
    lc_branch_name varchar2(100);
    begin
    SELECT rtrim(substr(FVT.DESCRIPTION
    ,instr(FVT.DESCRIPTION,'-',1)+1
    ,100)) INTO lc_branch_name
    FROM FND_FLEX_VALUES FFV, FND_FLEX_VALUES_TL FVT
    WHERE FFV.flex_value_Set_id = 1007956
    AND FFV.FLEX_VALUE_ID = FVT.FLEX_VALUE_ID
    AND FFV.FLEX_VALUE = FVT.FLEX_VALUE_MEANING
    AND FVT.DESCRIPTION <> 'xxx'
    and rownum<=1
    AND SUBSTR(FVT.FLEX_VALUE_MEANING,3,2) = :P_BRANCH;
    return (lc_branch_name);
    end;

  • REP-1401: 'cf_10formula': Fatal PL/SQL error occurred. ORA-06502: PL/SQL: numeric or value error

    Hi Team,
    I am running one conc programme.
    After running I am getting below  error. I checked the issue on metalink  and other, seems that it is an size related issue. I have increased the size of formula columns and placeholdder too.
    But still getting issue.
    My requirement is to get comma seperated values using SQL query itself. Neither i wanted to create layout of the report , since it is a XML publisher report and nor  I am including it on RTF template.
    I want the CF_10 formula column to be populated with comma seperated values.
    MSG-00187: From Date 01-Sep-2014
    REP-1401: 'cf_10formula': Fatal PL/SQL error occurred.
    ORA-06502: PL/SQL: numeric or value error
    And Here is my code for CF_10
    function CF_10Formula return Number is
    begin
       SELECT NVL(TO_CHAR(sum(Amount),'99,99,99,999'),0) into :CP_5 --NVL(ROUND(sum(Amount)),0) into :CP_5
    --  xxhw_Coll_cat(category)     "Intercat  Catg"
    FROM hhxw_Region_col_v
    WHERE Category IN ('Intercompany - CATV')
    AND trunc(gl_date) BETWEEN TO_DATE(:P_FROM_DATE, 'DD/MM/RRRR') AND TO_DATE(:P_TO_DATE, 'DD/MM/RRRR');
    RETURN ROUND(:CP_5);
    end;
    Anyone please suggest me.
    Regards,
    Sachin

    Hi,
    1)Why are you selecting the value into a report item? Select into a local variable and return that
    RETURN :CP_5 --> This one!!
    2)And you should avoid applying functions to DB columns in where clauses wherever possible, so oracle can use indexes on them if applicable:
    AND gl_date >= To_date(:P_FROM_DATE, 'DD/MM/RRRR')
    AND gl_date < To_date( :P_TO_DATE, 'DD/MM/RRRR') + 1;
    I think you are taking 2 column in the Layout CF_10 and CP_5 right? if so, then use below Query.
    FUNCTION cf_10formula
      RETURN NUMBER
    IS
      v_amount NUMBER:null;
    IS
    BEGIN
      BEGIN
        SELECT nvl(round(SUM(amount)), 0)
        INTO   v_amount --> Retruns the value for CF_10 column
        FROM   hhxw_region_col_v
        WHERE  category IN ( 'Intercompany - CATV' )
        AND    gl_date >= to_date(:P_FROM_DATE, 'DD/MM/RRRR')
        AND    gl_date < to_date( :P_TO_DATE, 'DD/MM/RRRR') + 1;
        :CP_5 := nvl(trunc(v_amount),0); --> Retruns the value for CP_5 column
      EXCEPTION
      WHEN OTHERS THEN
        v_amount := 0;
        srw.message(1003,'Error in Getting  :' ||p_from_date);
      END;
    END;
    And
    If you've got a number function returning into a number field then all you should need to do to make the comma appear is to change the number format mask in field.
    From 40000 to 40,000

  • REP-1401: 'cf_changetotalformula': Fatal PL/SQL error occurred.

    The program is finding no data in some place and is erroring out.
    when i run the report i get the following error
    REP-3000: Internal error starting Oracle Toolkit.
    MSG-00010: EC installation status I
    MSG-00003: Calling the archiving routine with parameters PO, STANDARD, 6677
    REP-1401: 'cf_changetotalformula': Fatal PL/SQL error occurred.
    ORA-01403: no data found
    The following is the program
    function CF_ChangeTotalFormula return Number is
    v_maxrev number:=0;
    v_result_final number :=0;
    v_changes_to_curr varchar2(2000);
    v_changes_to_prev varchar2(2000);
    v_OriginalPOAmount varchar2(2000);
    v_changes_from varchar2(2000);
    v_changes_to varchar2(2000);
    v_seq number ;
    v_rev_num number ;
    v_para varchar2(100);
    begin
         select icx_po_history_details_s.nextval into v_seq from dual;
    select max(revision_num) into v_rev_num from apps.po_lines_archive where po_header_id =:poh_po_header_id;
    for i in 1 .. v_rev_num loop
                        if v_rev_num >1 then
                                  v_para := null;
                        else
                                  v_para := 'ORIGINAL';
                        end if;
                   begin
                             pos_revision_differences.compare_headers(:poh_po_header_id,null,i,v_para,v_seq);
                             exception
                                  when others then
                                  return 0;
                             end;
    end loop;
    Select sum(pol.unit_price*pol.quantity) OriginalPOAmount
    into v_OriginalPOAmount
    from apps.po_lines_archive pol
    where pol.revision_num = 0
    and po_header_id = :poh_po_header_id
    group by pol.po_header_id;
    select max(revision_num)
    into v_maxrev
    from apps.po_lines_archive
    where po_header_id = :poh_po_header_id;
    if v_maxrev > 1 then
    select distinct a.changes_to
    into v_changes_to_curr
    from icx_po_revisions_temp_v a
    where a.header_id = :poh_po_header_id
    and a.field_altered = 'Amount'
    and a.revision_num = v_maxrev
    and a.changes_from <> v_OriginalPOAmount;
    if v_maxrev-1 <> 1 then
    select distinct a.changes_to
    into v_changes_to_prev
    from icx_po_revisions_temp_v a
    where a.header_id = :poh_po_header_id
    and a.field_altered = 'Amount'
    and a.revision_num = v_maxrev-1
    and a.changes_from <> v_OriginalPOAmount;
    else
    select distinct a.changes_to
    into v_changes_to_prev
    from icx_po_revisions_temp_v a
    where a.header_id = :poh_po_header_id
    and a.field_altered = 'Amount'
    and a.revision_num = 1;
    end if;
    v_result_final := v_changes_to_curr - v_changes_to_prev;
    else
    select distinct a.changes_from,a.changes_to
    into v_changes_from,v_changes_to
    from icx_po_revisions_temp_v a
    where a.header_id = :poh_po_header_id
    and a.field_altered = 'Amount'
    and a.revision_num = 1;
    v_result_final := v_changes_to - v_changes_from ;
    end if;
    return v_result_final;
    /* exception
                   when others then
                   return 0; */
    end;
    Can anyone shed a light on this.
    thanks
    kalpana

    The program is finding no data in some place and is erroring out.
    when i run the report i get the following error
    REP-3000: Internal error starting Oracle Toolkit.
    MSG-00010: EC installation status I
    MSG-00003: Calling the archiving routine with parameters PO, STANDARD, 6677
    REP-1401: 'cf_changetotalformula': Fatal PL/SQL error occurred.
    ORA-01403: no data found
    The following is the program
    function CF_ChangeTotalFormula return Number is
    v_maxrev number:=0;
    v_result_final number :=0;
    v_changes_to_curr varchar2(2000);
    v_changes_to_prev varchar2(2000);
    v_OriginalPOAmount varchar2(2000);
    v_changes_from varchar2(2000);
    v_changes_to varchar2(2000);
    v_seq number ;
    v_rev_num number ;
    v_para varchar2(100);
    begin
         select icx_po_history_details_s.nextval into v_seq from dual;
    select max(revision_num) into v_rev_num from apps.po_lines_archive where po_header_id =:poh_po_header_id;
    for i in 1 .. v_rev_num loop
                        if v_rev_num >1 then
                                  v_para := null;
                        else
                                  v_para := 'ORIGINAL';
                        end if;
                   begin
                             pos_revision_differences.compare_headers(:poh_po_header_id,null,i,v_para,v_seq);
                             exception
                                  when others then
                                  return 0;
                             end;
    end loop;
    Select sum(pol.unit_price*pol.quantity) OriginalPOAmount
    into v_OriginalPOAmount
    from apps.po_lines_archive pol
    where pol.revision_num = 0
    and po_header_id = :poh_po_header_id
    group by pol.po_header_id;
    select max(revision_num)
    into v_maxrev
    from apps.po_lines_archive
    where po_header_id = :poh_po_header_id;
    if v_maxrev > 1 then
    select distinct a.changes_to
    into v_changes_to_curr
    from icx_po_revisions_temp_v a
    where a.header_id = :poh_po_header_id
    and a.field_altered = 'Amount'
    and a.revision_num = v_maxrev
    and a.changes_from <> v_OriginalPOAmount;
    if v_maxrev-1 <> 1 then
    select distinct a.changes_to
    into v_changes_to_prev
    from icx_po_revisions_temp_v a
    where a.header_id = :poh_po_header_id
    and a.field_altered = 'Amount'
    and a.revision_num = v_maxrev-1
    and a.changes_from <> v_OriginalPOAmount;
    else
    select distinct a.changes_to
    into v_changes_to_prev
    from icx_po_revisions_temp_v a
    where a.header_id = :poh_po_header_id
    and a.field_altered = 'Amount'
    and a.revision_num = 1;
    end if;
    v_result_final := v_changes_to_curr - v_changes_to_prev;
    else
    select distinct a.changes_from,a.changes_to
    into v_changes_from,v_changes_to
    from icx_po_revisions_temp_v a
    where a.header_id = :poh_po_header_id
    and a.field_altered = 'Amount'
    and a.revision_num = 1;
    v_result_final := v_changes_to - v_changes_from ;
    end if;
    return v_result_final;
    /* exception
                   when others then
                   return 0; */
    end;
    Can anyone shed a light on this.
    thanks
    kalpana

  • REP-1401:'afterpform': Fatal PL/SQL error occurred.

    Hello. I have a report that receive 3 parameters (2 Date parameters and a Char parameter) and a lexical parameter P_Where.
    In the after_parameter_form trigger I wrote this code:
    function AfterPForm return boolean is
    begin
    :P_Where := NULL;
    if (:P_DESDE_FECHA is not null) then
    :P_Where := add_AND(:P_Where) &#0124; &#0124; 'FECPAGO >= :P_DESDE_FECHA';
    end if;
    if (:P_HASTA_FECHA is not null) then
    :P_Where := add_AND(:P_Where) &#0124; &#0124; 'FECPAGO <= :P_HASTA_FECHA';
    end if;
    if (Upper(:P_OPCION) = 'O') then
    :P_Where := add_AND(:P_Where) &#0124; &#0124; 'MARCA = ' &#0124; &#0124; '''OR''';
    elsif (Upper(:P_OPCION) = 'P') then
    :P_Where := add_AND(:P_Where) &#0124; &#0124; 'MARCA in (' &#0124; &#0124; '''PR''' &#0124; &#0124; ',' &#0124; &#0124; '''PH''' &#0124; &#0124; ',' &#0124; &#0124; '''PF''' &#0124; &#0124; ')';
    end if;
    if :P_Where is not null then
    :P_Where := 'WHERE ' &#0124; &#0124; :P_Where;
    end if;
    return (TRUE);
    end;
    This is the function add_AND:
    function add_AND ( pWhere IN varchar2) return varchar2 is
    begin
    if (nvl( length(pWhere),0)!=0) then
    return (pWhere &#0124; &#0124; ' AND ');
    else
    return (pWhere);
    end if;
    end;
    Sometimes when I try to run the report I receive the following message:
    REP-1401:'afterpform': Fatal PL/SQL error occurred.
    In the Report's Help I find the follow explanation:
    Sometimes you may encounter an error that is known as an abnormal condition, which may arise from one of the following causes:
    Someone has done something that prevented Developer/2000 from completing the requested task. For example, if someone bypassed the user interface and changed data in one of the Developer/2000 tables, they might have typed an invalid value.
    A bug in Developer/2000 prevented the requested task from completing.
    Action: First contact your system administrator to determine if the message was caused by something other than Developer/2000. If you determine that the message was not the result of user error or a system problem, then contact Oracle Customer Support.
    Please I need some help.
    Thank you
    null

    function AfterPForm return boolean is
    begin
    if :P_REP_NAME='Material' then
    :rep:='union SELECT SUBSTR(ppa.segment1,1,10),SUBSTR(ppa.segment1,5,6),TO_CHAR(pha.creation_date,'||''''||'FMMonth YYYY'||''''||'),ppa.name ,msi.segment1,NVL((pla.quantity*pla.unit_price),0) ,NVL((pda.nonrecoverable_tax+pda.recoverable_tax),0) FROM pa_projects_all ppa ,mtl_system_items_b msi ,po_lines_all pla ,po_distributions_all pda ,po_headers_all pha WHERE ppa.project_id=NVL(pda.project_id,0)AND pda.po_line_id=pla.po_line_id AND pla.item_id=msi.inventory_item_id(+) AND pha.po_header_id=pla.po_header_id AND pda.po_header_id=pha.po_header_id AND msi.organization_id(+)=25 AND ppa.org_id=pda.org_id AND ppa.name=:p_project_name AND TO_CHAR(pha.creation_date,'||''''||'MON-YYYY'||''''||')=:P_creation_date';
         elsif :P_REP_NAME='Material Purchase Year to Date' then
              :rep:='union SELECT SUBSTR(ppa.segment1,1,10) site ,SUBSTR(ppa.segment1,5,6) cost_center,to_char(pha.creation_date,'||''''||'FMMonth YYYY'||''''||') Month_Year,TO_CHAR(pha.creation_date,'||''''||'YYYY'||''''||') Year,ppa.name,msi.segment1 material_code,nvl( (pla.quantity*pla.unit_price),0) item_amt,nvl((pda.nonrecoverable_tax+pda.recoverable_tax),0) GST_Amount FROM pa_projects_all ppa,mtl_system_items_b msi,po_lines_all pla,po_distributions_all pda,po_headers_all pha,hr_operating_units hou WHERE ppa.project_id=pda.project_id AND pda.po_line_id =pla.po_line_id AND pla.item_id =msi.inventory_item_id(+) AND pha.po_header_id=pla.po_header_id AND pda.po_header_id=pha.po_header_id and pha.org_id=hou.organization_id and msi.organization_id(+)=25 and ppa.name=:p_project_name';          
                   end if;
    return (TRUE);
    end;

  • REP-1401 : 'CF_Real_VendorFormula': Fatal PL/SQL error occured.

    Hi,
    I have a cf_formula wich return a varchar. when i run the report, the REP-1401 : 'CF_Real_VendorFormula': Fatal PL/SQL error occured.
    can someone help me.
    Best regards.
    function CF_Real_VendorFormula return Char is
    att10 varchar2(20);
    real_vendor varchar2(320);
    begin
    *          select V.ATTRIBUTE10 into att10*
    *          from AP_CHECKS_ALL v*
    *          where CHECK_ID = :check_id;*
    *          if(att10 = 'DESCRIPTION')then*
    *                         select ai.description into real_vendor*
    *                         from ap_invoices_all AI*
    *          ,AP_INVOICE_PAYMENTS_ALL aip*
    *          where aip.INVOICE_ID = ai.invoice_id*
    *          and aip.check_id = :check_id*
    *          and rownum <2;*
    *          return (real_vendor);*
    *          else*
    *                    real_vendor := :vendor_name;*
    *                    return (real_vendor);*
    *          end if;          *
    *          EXCEPTION     WHEN NO_dATA_FOUND THEN*
    *               RETURN('');*
    end;

    Hi,
    The formula return type should be varchar2 ans not char.
    function CF_Real_VendorFormula return varchar2
    Best regards,
    Saad.

  • REP-1401 'TPSCFORMULA:' Fatal PL/SQL Error Occured

    Dear Friends
    In the report form I had given the following code after compale
    function tpscFormula return Number is
    begin
         return(nvl(:pftotcost,0)/nvl(:SumPFIQTYPerPFINO,1)*:PFIPFIDIFF);
    end;
    REP-1401 'TPSCFORMULA:' Fatal PL/SQL Error Occured
    REP-1609: you cannot run without a layout
    Can anyone help to resolve this error.
    sandy

    Hi,
    how about trying like this...
    function tpscFormula return Number is
    begin
              return (nvl(:pftotcost,0)/(nvl(:SumPFIQTYPerPFINO,1)*NVL(:PFIPFIDIFF,0)));
    exception
       when others then
         return 0;
    end;It will return 0 in case of any error in the code you used. So, you can check either it is zero_divided or something else...
    -Ammad

  • REP-1401: 'afterpform': Fatal PL/SQL error occured; numeric or value error

    Hi ppl
    I have some trigger in AFTER PARAMETER FORM:
    BEGIN
    IF not(:P_1 is null) THEN
         whercl:=whercl || ' ID >='||:P_1||' ';
         flag:=true;
    END IF;
    IF not(:P_2 is null) THEN
         IF flag THEN
              whercl:=whercl||' AND';
         END IF;
         whercl:=whercl || ' ID <='||:P_2||' ';
         flag:=true;
    END IF;
    IF flag THEN
         whercl:=' WHERE' ||whercl;
    END IF;
    :MYCLAUSE:=whercl;
    RETURN (result);
    END;
    It's ok.
    But when I add to this function this one:
    IF not(:P_3 is null) THEN
         IF flag THEN
              whercl:=whercl||' AND';
         END IF;
         whercl:=whercl || ' DTDOC >= to_date('''||:P_3||''',''DD-MM-YYYY'') ';
         flag:=true;
    END IF;
    and launch report - recieve such error message:
    REP-1401: 'afterpform': Fatal PL/SQL error occured.
    ORA-06502: PL/SQL: numeric or value error
    What could it be?
    My query is like
    SELECT ABC, EDG, ID, DTDOC FROM XXX &MYCLAUSE
    Regards
    Max

    Hi
    U got to check some of the points here
    1. Check the length of the Wherec1 .
    2. Check P1 or P2 is not a number Datatype Parameters .
    3. Check P3 too and also possibly try to use same date formats on both sides.
    Check also in which IF condition this error is coming up
    using srw.message
    I think this should help u to fix it
    Sri
    Hi ppl
    I have some trigger in AFTER PARAMETER FORM:
    BEGIN
    IF not(:P_1 is null) THEN
         whercl:=whercl || ' ID >='||:P_1||' ';
         flag:=true;
    END IF;
    IF not(:P_2 is null) THEN
         IF flag THEN
              whercl:=whercl||' AND';
         END IF;
         whercl:=whercl || ' ID <='||:P_2||' ';
         flag:=true;
    END IF;
    IF flag THEN
         whercl:=' WHERE' ||whercl;
    END IF;
    :MYCLAUSE:=whercl;
    RETURN (result);
    END;
    It's ok.
    But when I add to this function this one:
    IF not(:P_3 is null) THEN
         IF flag THEN
              whercl:=whercl||' AND';
         END IF;
         whercl:=whercl || ' DTDOC >= to_date('''||:P_3||''',''DD-MM-YYYY'') ';
         flag:=true;
    END IF;
    and launch report - recieve such error message:
    REP-1401: 'afterpform': Fatal PL/SQL error occured.
    ORA-06502: PL/SQL: numeric or value error
    What could it be?
    My query is like
    SELECT ABC, EDG, ID, DTDOC FROM XXX &MYCLAUSE
    Regards
    Max

  • REP-1401 'beforereport' Fatal PL/SQL error occurred

    Hi,
    Users receive this error when executing a Report that i've developed, but the problem is we see this error without a indicating error, like "Numeric error or value error", or "No Data found"...
    This is the log of the treatment...
    Arguments :
    P_NUM_DP='7212'
    P_DECISION='1'
    Current NLS_LANG and NLS_NUMERIC_CHARACTERS Environment Variables are :
    FRENCH_FRANCE.WE8ISO8859P1
    REP-1401: 'beforereport': Une erreur fatale PL/SQL s'est produite.
    Report Builder: Release 6.0.8.28.0 - Production on Ve Jun 10 08:05:40 2011
    (c) Copyright 1999 Oracle Corporation. All rights reserved.
    Entrer nom utilisateur :
    Début des messages de journalisation à partir du fichier FND_FILE.
    Fin des messages de journalisation à partir du fichier FND_FILE.
    Programme sortie avec statut 1
    Le GTS a rencontré une erreur pendant l'exécution d'Oracle*Report pour votre traitement simultané 21436191.
    Pour plus d'informations, examinez le fichier de journalisation et/ou de sortie des états de votre traitement simultané.
    Thanks for helping me...

    And what is your beforereport code then? My guess it that it sets a value for a parameter that is incompatible in type (char/number) or field length.
    BTW: as soon as you see FND_something it probably has to do with Oracle Apps, so you might want to ask in that forum.

  • REP:1401 'cf_cf_pb_si_accformula': Fatal PL/SQL error occurred.

    I got this error message , i check forumulla but it is ok nothing is wrong in there.My report builder version is 3.0.5.8.0,
    Please help me it is urgent.

    i check forumulla but it is ok nothing is wrong in thereYeah, right. So the error is wrong and not your code?

  • REP-1401 Fatal PL/SQL error occur ORA-06502 numeric or value error

    Hi,
    I am getting following error in reports 6i
    REP-1401 Fatal PL/SQL error occur ORA-06502 numeric or value error.
    I have added a formula column based on other formula column
    function CF_1FORMULA0005 return varchar2 is
    CF_CREDIT varchar2(38);
    begin
    :CF_CREDIT:= :D_CARRY_F_CR+:D_HD_SUM_REP_CR;
    RETURN (:CF_CREDIT);
    end;
    Oracle Standard formula coulmn:
    function D_CARRY_F_DRFormula return VARCHAR2 is
    l_dr VARCHAR2(38);
    l_dr_disp VARCHAR2(38);
    begin
    SRW.REFERENCE(:C_FUNC_CURRENCY);
    SRW.REFERENCE(:C_CARRY_F_DR);
    if (:C_CARRY_F_DR = 0) THEN
    ax_globe_package.g_dr_cf := TRUE;
    --l_dr:= '0.00';
    l_dr_disp := '0.00';
    l_dr := ax_currency_pkg.display_char(:C_FUNC_CURRENCY,l_dr_disp,38);
    else
    -- return(ax_currency_pkg.display_char(:C_FUNC_CURRENCY,:C_CARRY_F_DR,ax_page_pkg.f_maxlength));
    -- Bug2239881. Setting the carried forward totals.
    IF (:P_GLOBAL_ATTR_CAT = 'JE.GR.GLXSTBKS.BOOKS' AND ax_globe_package.g_dr_cf = FALSE) THEN
    ax_globe_package.g_dr_cf := TRUE;
    ax_globe_package.g_dr_total := :C_CARRY_F_DR;
    END IF;
    srw.message(999,'G_DR_TOTAL = ' || ax_globe_package.g_dr_total );
    l_dr := ax_currency_pkg.display_char(:C_FUNC_CURRENCY,to_char(ax_globe_package.g_dr_total),38);
    /*select to_number(l_dr, '999G999G999G999G990D00')
    into l_dr_disp
    from dual;
    end if;
    srw.message(999,'l_dr = ' || l_dr );
    return l_dr;
    --return ltrim(to_char(l_dr_disp,'999G999G999G999G990D00','nls_numeric_characters=,.'));
    end;
    both formula column return types are character.Please help me ASAP.
    Thanks,
    sriharsha.

    Hi,
    First of all: when you should use concatenation operator (||) instead of plus sign when working with strings. So, instead of
    :CF_CREDIT:= :D_CARRY_F_CR+:D_HD_SUM_REP_CR; you should use
    :CF_CREDIT:= :D_CARRY_F_CR||:D_HD_SUM_REP_CR; If :D_CARRY_F_CR and :D_HD_SUM_REP_CR are both numbers then consider to use to_char function before you assign value to :CF_CREDIT.
    I wonder, why your CF's returns varchar's if they operates on numbers?
    regards
    kikolus
    Edited by: kikolus on 2012-11-30 08:03

Maybe you are looking for