Compile for Debug Proc/Package Size

Was attempting to debug a package on a DB but when compiling for debug got a message along the lines of 'Pacakge to large' and the compilation finished with warnings.
Is there a max size the compile for debug can handle and if so what is it.
Thanks
Paul

Google gave me this from the Oracle 11.1 PL/SQL Langauge Reference:
>
In the shared memory pool, a package spec, object type spec, standalone subprogram, or anonymous block is limited to 67108864 (2**26) DIANA nodes which correspond to tokens such as identifiers, keywords, operators, and so on. This allows for <b>~6,000,000 lines of code</b>...
>
http://download-west.oracle.com/docs/cd/B28359_01/appdev.111/b28370/limits.htm

Similar Messages

  • Oracle SQL Developer Release 1.5.5 "compile for debug"

    Using Oracle SQL Developer Release 1.5.5 on Windows XP pro machine connecting to 9.2.0.4 database on AIX machine.
    Trying to debug a procedure, in the navigator window, I rt-clk the procedure and select "Compile for Debug", then nothing happens. This happens for every procedure I've tried. I've been granted both DEBUG ANY PROCEDURE and DEBUG CONNECT SESSION. Any ideas?

    This is the first I've used SQL Developer, so I'll take the blame. I had not noticed that the Messages Log does in fact tell me that the proc compiled. However, the debug icon (little red bug) was nowhere to be found.
    I see now that I need to Edit, not Open, the proc in order to debug. If I had read the Help screens a little more closely, I would have seen that I needed to be in Edit mode. My bad. Thanx to all for your responses.

  • Compile for Debug accelerator key

    Hello all,
    it seems it's not possible to set an accelerator key for the "Compile for debug" command, at least I cannot find how to.
    Any ideas? If it's not possible, I would like to suggest it for a future release.
    With kind regards,
    Ronald

    It's not possible currently, you can log the request over at the exchange sqldeveloper.oracle.com
    -kris

  • PLW-06015 when compilling for debug

    Hi,
    I have the error message: "Warning(1): PLW-06015: parameter PLSQL_DEBUG is deprecated; use PLSQL_OPTIMIZE_LEVEL = 1"
    each time I compile for debug.
    The Oracle database parameters are
    plsql_warnings ENABLE:ALL
    plsql_debug FALSE
    plsql_optimize_level 2
    So Why do I have this message?
    Seb

    Yes,
    I can modify everything under Database - PL/SQL Compiler.
    Optimization Level is already set to 2.
    Here are the other preferences:
    ALL: ENABLE
    INFORMATIONAL: not set
    SEVERE: not set
    PERFORMANCE: not set
    PLScope identifiers: All
    The user for the schema has the DEBUG CONNECT SESSION.
    When I change Optimization level to 1 and compile or compile for debug, I always receive the warning message.
    When I change Optimization level to 2, I always receive the warning message only when I compile for debug,
    In case of, the SQL developer version I use is Version 2.1.1.64 Build MAIN-64.39.
    Seb

  • Fatal error compiler limit : debug information module size exceeded ?

    Hy
    I try to compile a model, size 6 Mo.
    I can simulate it on my pc, but when I want to generate a dll with SIT I have a error fatal...
    fatal error C1067: compiler limit : debug information module size exceeded
    Do you have any idea ?
    Thanks
    FB

    Hi,
    Is this still linked to this thred? or do you still have the problem ?
    Regards.
    Richard Keromen
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    >> Découvrez, en vidéo, les innovations technologiques réalisées en éco-conception

  • PLS-00801 error during compile for debug

    Hi,
    I am working as an oracle consultant, hired by an insurance company to rewrite some stuf they made...
    They are using a lot of procedures with nested functions/procedures instead of packages :-(
    Something strange happens though. if you have a procedure with a global cursor declaration, used as a parameterrowtype in a nested function/procedure, the source will not compile to debug (error PLS-00801), unless you delare a global rowtype of that cursor. I pasted some test source within this e-mail where the error is reproducable.
    If the commented line ' -- rg_tst cg_tst%rowtype;' is enabled, the procedure will compile. when its commented, it will compile normally, but NOT with debug option...
    Anyone familiar with this prob?
    thanx,
    Peter Boekelaar,
    Holland
    Test-source
    CREATE OR REPLACE PROCEDURE p_debug_test
    AS
    cn_max_date CONSTANT DATE := TO_DATE('12/31/2005','MM/DD/YYYY');
    CURSOR cg_tst( b_param1 NUMBER )
    IS
    SELECT ADD_MONTHS(TRUNC(SYSDATE), b_param1) tst_date
    , USER tst_user
    FROM dual;
    -- rg_tst cg_tst%rowtype;
    FUNCTION f_date_is_valid( i_cp_tst IN cg_tst%ROWTYPE
    , i_max_date IN DATE
    ) RETURN BOOLEAN
    IS
    BEGIN
    RETURN (i_cp_tst.tst_date <= i_max_date);
    END;
    BEGIN
    FOR rg_tst IN cg_tst( 6 )
    LOOP
    IF f_date_is_valid( rg_tst, cn_max_date )
    THEN
    DBMS_OUTPUT.PUT_LINE( 'Yep1' );
    END IF;
    END LOOP;
    END;

    Fundamentally it means the database connection has been lost, but they may be an underlying error.
    Try the following to give yourself more chance of seeing the underlying error.
    1. Run sqldeveloper from <sqldev>\sqldeveloper\bin\sqldeveloper.exe. This will leave a console window open.
    2. If the problem occurs, look for error messages in the console.
    Can you compile other procedures for debug without the error? Try creating a minimalist for testing.

  • Compile for Debug Results in "Error: No more data to read from socket"

    I am testing the debugger in SQL Developer, and although I can compile objects normally (using the menu/tool bar options), when I compile a procedure for debug, I get this message:
    Error: No more data to read from socket
    There is no sql error message, just this statement.
    I am using 1.5.1.54.40 on an XP SP2 machine. The database is hosted remotely.
    Any advice is appreciated.
    Thanks, Wolf Moritz

    Weird, I was going to say that these are network or port issues, but then a quick look around popped this up. It may be related. SQL error 17410 No more data to read from socket

  • Help for debug un package PL/SQL error at line 723 Encountered

    create or replace package body SPR_AP_FUSION_EXTRACT_PKG is
    PROCEDURE MAIN_FUSION_EXTRACT(
    pv_errbuff IN OUT VARCHAR2,
    pn_retcode IN OUT NUMBER
    IS
    lv_ligne VARCHAR2 (500);
    lv_rep VARCHAR2 (260); --:= '/usr/tmp';
    ln_retcode NUMBER;
    vv_separator VARCHAR2 (2) := ';';
    ln_compteur_lignes NUMBER := 0; -- nombre de lignes insérées dans le fichier
    ln_counteur NUMBER := 0;
    vv_buffer VARCHAR2 (32000);
    vv_buffer_et VARCHAR2 (32000);
    vv_buffer_etold VARCHAR2 (32000);
    lt_id UTL_FILE.file_type;
    ln_counter NUMBER (24, 0);
    lv_seq VARCHAR2 (30);
    lv_num_paiement VARCHAR2 (10);
    flag_ecriture VARCHAR2 (1);
    lv_filler_ligne VARCHAR2 (500);
    ln_long_buff NUMBER := 0;
    ln_compteur_factures NUMBER := 0;
    lv_name VARCHAR2 (500);
    vv_entete VARCHAR2 (500);
    LV_INVOICE_ID ap_invoices_all.invoice_id%type;
    ln_compteur_hold NUMBER := 0;
    lv_hode_reason VARCHAR2 (500);
    lv_release_reason VARCHAR2 (500);
    lv_societe_absorbee VARCHAR2 (500);
    lv_societe_absorbante VARCHAR2 (500);
    ln_org_id NUMBER := 0;
    lv_date_fusion DATE;
    err_non_parameter Exception;
    err_Soc_sr Exception;
    err_file_write Exception;
    err_file_invalid_path Exception;
    err_ecriture_file Exception;
    CURSOR cur_ap_hold_invoices
    ( LV$invoice_id IN AP_invoices_all.Invoice_Id%TYPE)
    IS
    SELECT aha.hold_reason, aha.release_reason
    from ap_holds_all aha
    where aha.invoice_id = LV$invoice_id
    rec_ap_hold_invoices cur_ap_hold_invoices%ROWTYPE;
    --Enregistrement "DESTINATAIRE"
    CURSOR cur_fusion_extract_AP_invoice
    ( LV$Societe_absorbee IN cgey_parameters.VARCHAR2_VALUE%Type,
    LV$Societe_absorbant IN cgey_parameters.VARCHAR2_VALUE%Type,
    LV$Date_fusion IN cgey_parameters.DATE_VALUE%Type
    IS
    SELECT
    Aia.Invoice_Id
    , Aia.Invoice_Num
    , Aia.Invoice_Type_Lookup_Code
    , Aia.Invoice_Date
    , Pv.Vendor_Id
    , Pv.Segment1
    , Pv.Vendor_Name
    , pvsa.Vendor_Site_Id
    , Pvsa.Vendor_Site_Code
    , aia.invoice_amount
    , aia.amount_paid
    -- RG3: Montant repris = valeur restante a regler
    , ROUND (NVL(SUM(Apsa.Amount_Remaining),0),2) Amount_Remaining
    , Ap_Invoices_Utility_Pkg.get_approval_status(aia.invoice_id,aia.invoice_amount,aia.payment_status_flag,aia.invoice_type_lookup_code) STATUT
    , aia.invoice_currency_code
    , aia.exchange_rate
    , aia.exchange_rate_type
    , aia.exchange_date
    , Ate.Name Terms_Name
    , aia.terms_date
    , aia.source
    , aia.doc_category_code
    , aia.payment_method_lookup_code
    , aia.pay_group_lookup_code
    , aia.gl_date
    , Aia.Doc_Sequence_Id
    , aia.accts_pay_code_combination_id
    , CGEY_TOOLS_PKG.get_segments_from_ccid(Aia.Accts_Pay_Code_Combination_Id) Cle_Comptable_Founisseur
    , aia.org_id
    , aia.payment_cross_rate_type
    , aia.payment_cross_rate_date
    , aia.payment_cross_rate
    , aia.payment_currency_code
    , aia.attribute_category
    , Aia.Attribute1
    , Aia.Attribute2
    , Aia.Attribute3
    , Aia.Attribute4
    , Aia.Attribute5
    , Aia.Attribute6
    , Aia.Attribute7
    , Aia.Attribute8
    , Aia.Attribute9
    , Aia.Attribute10
    , Aia.Attribute11
    , Aia.Attribute12
    , Aia.Attribute13
    , Aia.Attribute14
    , Aia.Attribute15
    , Aia.Global_Attribute_Category
    , Aia.Global_Attribute1
    , Aia.Global_Attribute2
    , Aia.Global_Attribute3
    , Aia.Global_Attribute4
    , Aia.Global_Attribute5
    , Aia.Global_Attribute6
    , Aia.Global_Attribute7
    , Aia.Global_Attribute8
    , Aia.Global_Attribute9
    , Aia.Global_Attribute10
    , Aia.Global_Attribute11
    , Aia.Global_Attribute12
    , Aia.Global_Attribute13
    , Aia.Global_Attribute14
    , Aia.Global_Attribute15
    , Aia.Global_Attribute16
    , Aia.Global_Attribute17
    , Aia.Global_Attribute18
    , Aia.Global_Attribute19
    , Aia.Global_Attribute20
    FROM
    Ap_Invoices_All Aia
    , Ap_Payment_Schedules_All Apsa
    , Po_Vendor_Sites_All Pvsa
    , Ap_Terms Ate
    , Po_Vendors Pv
    WHERE
    1=1
    -- RG1: Type de la facture
    AND Aia.invoice_type_lookup_code IN ('STANDARD', 'CREDIT', 'DEBIT')
    AND Apsa.Invoice_Id = Aia.Invoice_Id
    AND Pvsa.Vendor_Site_Id = Aia.Vendor_Site_Id
    AND Ate.Term_Id = Aia.Terms_Id
    AND Pv.Vendor_Id = Aia.Vendor_Id
    -- RG 1: pour les factures créées antétieur à la date de fusion
    AND Aia.Creation_Date < LV$Date_fusion
    -- RG1: Ensemble des lignes de la facture postees
    AND NOT EXISTS ( SELECT 'x'
    FROM
    Ap_Invoice_Distributions_All Aida
    WHERE
    Aida.Invoice_id = Aia.Invoice_Id
    AND NVL(Aida.Accrual_Posted_Flag,'N') <> 'Y' )
    -- pour la société absorbée
    AND aia.org_id = (select ORGANIZATION_ID from HR_ALL_ORGANIZATION_UNITS HAOU
    where HAOU.Name = LV$Societe_absorbee
    GROUP BY
    Aia.Invoice_Id
    , Aia.Invoice_Num
    , Aia.Invoice_Type_Lookup_Code
    , Aia.Invoice_Date
    , Pv.Vendor_Id
    , Pv.Segment1
    , Pv.Vendor_Name
    , pvsa.Vendor_Site_Id
    , Pvsa.Vendor_Site_Code
    , aia.invoice_amount
    , aia.amount_paid
    -- RG3: Montant repris = valeur restante a regler
    , Apsa.Amount_Remaining
    , aia.payment_status_flag
    , aia.invoice_currency_code
    , aia.exchange_rate
    , aia.exchange_rate_type
    , aia.exchange_date
    , Ate.Name
    , aia.terms_date
    , aia.source
    , aia.doc_category_code
    , aia.payment_method_lookup_code
    , aia.pay_group_lookup_code
    , aia.gl_date
    , Aia.Doc_Sequence_Id
    , aia.accts_pay_code_combination_id
    , aia.org_id
    , aia.payment_cross_rate_type
    , aia.payment_cross_rate_date
    , aia.payment_cross_rate
    , aia.payment_currency_code
    , aia.attribute_category
    , Aia.Attribute1
    , Aia.Attribute2
    , Aia.Attribute3
    , Aia.Attribute4
    , Aia.Attribute5
    , Aia.Attribute6
    , Aia.Attribute7
    , Aia.Attribute8
    , Aia.Attribute9
    , Aia.Attribute10
    , Aia.Attribute11
    , Aia.Attribute12
    , Aia.Attribute13
    , Aia.Attribute14
    , Aia.Attribute15
    , Aia.Global_Attribute_Category
    , Aia.Global_Attribute1
    , Aia.Global_Attribute2
    , Aia.Global_Attribute3
    , Aia.Global_Attribute4
    , Aia.Global_Attribute5
    , Aia.Global_Attribute6
    , Aia.Global_Attribute7
    , Aia.Global_Attribute8
    , Aia.Global_Attribute9
    , Aia.Global_Attribute10
    , Aia.Global_Attribute11
    , Aia.Global_Attribute12
    , Aia.Global_Attribute13
    , Aia.Global_Attribute14
    , Aia.Global_Attribute15
    , Aia.Global_Attribute16
    , Aia.Global_Attribute17
    , Aia.Global_Attribute18
    , Aia.Global_Attribute19
    , Aia.Global_Attribute20
    HAVING NVL(SUM(Apsa.Amount_Remaining),0) <> 0
    UNION ALL
    SELECT
    Aia.Invoice_Id
    , Aia.Invoice_Num
    , Aia.Invoice_Type_Lookup_Code
    , Aia.Invoice_Date
    , Pv.Vendor_Id
    , Pv.Segment1
    , Pv.Vendor_Name
    , pvsa.Vendor_Site_Id
    , Pvsa.Vendor_Site_Code
    , aia.invoice_amount
    , aia.amount_paid
    -- RG3: Montant repris = valeur restante a regler
    , Ap_Invoices_Utility_PKG.get_prepay_amount_remaining (Aia.invoice_Id) "Amount_Remaining"
    , Ap_Invoices_Utility_Pkg.get_approval_status(aia.invoice_id,aia.invoice_amount,aia.payment_status_flag,aia.invoice_type_lookup_code) STATUT
    , aia.invoice_currency_code
    , aia.exchange_rate
    , aia.exchange_rate_type
    , aia.exchange_date
    , Ate.Name Terms_Name
    , aia.terms_date
    , aia.source
    , aia.doc_category_code
    , aia.payment_method_lookup_code
    , aia.pay_group_lookup_code
    , aia.gl_date
    , Aia.Doc_Sequence_Id
    , aia.accts_pay_code_combination_id
    , CGEY_TOOLS_PKG.get_segments_from_ccid(Aia.Accts_Pay_Code_Combination_Id) Cle_Comptable_Founisseur
    , aia.org_id
    , aia.payment_cross_rate_type
    , aia.payment_cross_rate_date
    , aia.payment_cross_rate
    , aia.payment_currency_code
    , aia.attribute_category
    , Aia.Attribute1
    , Aia.Attribute2
    , Aia.Attribute3
    , Aia.Attribute4
    , Aia.Attribute5
    , Aia.Attribute6
    , Aia.Attribute7
    , Aia.Attribute8
    , Aia.Attribute9
    , Aia.Attribute10
    , Aia.Attribute11
    , Aia.Attribute12
    , Aia.Attribute13
    , Aia.Attribute14
    , Aia.Attribute15
    , Aia.Global_Attribute_Category
    , Aia.Global_Attribute1
    , Aia.Global_Attribute2
    , Aia.Global_Attribute3
    , Aia.Global_Attribute4
    , Aia.Global_Attribute5
    , Aia.Global_Attribute6
    , Aia.Global_Attribute7
    , Aia.Global_Attribute8
    , Aia.Global_Attribute9
    , Aia.Global_Attribute10
    , Aia.Global_Attribute11
    , Aia.Global_Attribute12
    , Aia.Global_Attribute13
    , Aia.Global_Attribute14
    , Aia.Global_Attribute15
    , Aia.Global_Attribute16
    , Aia.Global_Attribute17
    , Aia.Global_Attribute18
    , Aia.Global_Attribute19
    , Aia.Global_Attribute20
    FROM
    Ap_Invoices_All Aia
    , Po_Vendor_Sites_All Pvsa
    , Ap_Terms Ate
    , Po_Vendors Pv
    WHERE 1=1
    -- RG2: Type de la facture
    AND Aia.invoice_type_lookup_code = 'PREPAYMENT'
    -- RG2: Amount_Paid <> Invoice_Amount
    AND NVL(Aia.Invoice_Amount,0) = NVL(Aia.Amount_Paid,0)
    AND Pvsa.Vendor_Site_Id = Aia.Vendor_Site_Id
    AND Ate.Term_Id = Aia.Terms_Id
    AND Pv.Vendor_Id = Aia.Vendor_Id
    -- RG2: Ensemble des lignes de la facture postees
    AND NOT EXISTS ( SELECT 'x'
    FROM
    Ap_Invoice_Distributions_All Aida
    WHERE
    Aida.Invoice_id = Aia.Invoice_Id
    AND NVL(Aida.Accrual_Posted_Flag,'N') <> 'Y' )
    -- pour la société absorbée
    AND aia.org_id = (select ORGANIZATION_ID from HR_ALL_ORGANIZATION_UNITS HAOU
    where HAOU.Name = LV$Societe_absorbee
    -- RG 1: pour les factures créées antétieur à la date de fusion
    AND Aia.Creation_Date < LV$Date_fusion
    GROUP BY
    Aia.Invoice_Id
    , Aia.Invoice_Num
    , Aia.Invoice_Type_Lookup_Code
    , Aia.Invoice_Date
    , Pv.Vendor_Id
    , Pv.Segment1
    , Pv.Vendor_Name
    , pvsa.Vendor_Site_Id
    , Pvsa.Vendor_Site_Code
    , aia.invoice_amount
    , aia.amount_paid
    , aia.payment_status_flag
    , aia.invoice_currency_code
    , aia.exchange_rate
    , aia.exchange_rate_type
    , aia.exchange_date
    , Ate.Name
    , aia.terms_date
    , aia.source
    , aia.doc_category_code
    , aia.payment_method_lookup_code
    , aia.pay_group_lookup_code
    , aia.gl_date
    , Aia.Doc_Sequence_Id
    , aia.accts_pay_code_combination_id
    , aia.org_id
    , aia.payment_cross_rate_type
    , aia.payment_cross_rate_date
    , aia.payment_cross_rate
    , aia.payment_currency_code
    , aia.attribute_category
    , Aia.Attribute1
    , Aia.Attribute2
    , Aia.Attribute3
    , Aia.Attribute4
    , Aia.Attribute5
    , Aia.Attribute6
    , Aia.Attribute7
    , Aia.Attribute8
    , Aia.Attribute9
    , Aia.Attribute10
    , Aia.Attribute11
    , Aia.Attribute12
    , Aia.Attribute13
    , Aia.Attribute14
    , Aia.Attribute15
    , Aia.Global_Attribute_Category
    , Aia.Global_Attribute1
    , Aia.Global_Attribute2
    , Aia.Global_Attribute3
    , Aia.Global_Attribute4
    , Aia.Global_Attribute5
    , Aia.Global_Attribute6
    , Aia.Global_Attribute7
    , Aia.Global_Attribute8
    , Aia.Global_Attribute9
    , Aia.Global_Attribute10
    , Aia.Global_Attribute11
    , Aia.Global_Attribute12
    , Aia.Global_Attribute13
    , Aia.Global_Attribute14
    , Aia.Global_Attribute15
    , Aia.Global_Attribute16
    , Aia.Global_Attribute17
    , Aia.Global_Attribute18
    , Aia.Global_Attribute19
    , Aia.Global_Attribute20
    HAVING Ap_Invoices_Utility_PKG.get_prepay_amount_remaining (Aia.invoice_Id) <> 0
    AND Ap_Invoices_Utility_Pkg.get_approval_status(aia.invoice_id,aia.invoice_amount,aia.payment_status_flag,aia.invoice_type_lookup_code) = 'AVAILABLE'
    Rec_fusion_extract_AP_invoice cur_fusion_extract_AP_invoice%ROWTYPE;
    BEGIN
    ---------Initialisation
    pn_retcode := 0;
    pv_errbuff := NULL;
    ln_compteur_lignes := 0;
    lv_societe_absorbee := CGEY_TOOLS_PKG.get_varchar2_parameter ('SPR_FUSION_AP_SOCIETE', 'SOC_SR');
    lv_societe_absorbante :=CGEY_TOOLS_PKG.get_varchar2_parameter ('SPR_FUSION_AP_SOCIETE', 'SOC_CB');
    lv_date_fusion := CGEY_TOOLS_PKG.get_date_parameter ('SPR_FUSION_AP_SOCIETE', 'DATE_FUSION');
    lv_rep := cgey_tools_pkg.get_varchar2_parameter ('SPR_FUSION_AP_SOCIETE', 'REPERTOIRE_SORTIE');
    ----err_non_parameter
    IF lv_societe_absorbee is null or lv_societe_absorbante is null or lv_date_fusion is null or lv_rep is null
    THEN raise err_non_parameter;
    select NVL(ORGANIZATION_ID, 'NULL')
    INTO ln_org_id
    from HR_ALL_ORGANIZATION_UNITS HAOU
    where HAOU.Name = lv_societe_absorbee
    ----err_Soc_sr
    IF ln_org_id ='NULL'
    THEN Raise err_Soc_sr;
    BEGIN
    ----Création du fichier sorti
    cgey_tools_pkg.put_log_message ('Création et Ouverture du fichier en lecture');
    lv_name := 'FUSION_fac_AP_EXTRAIRE' || TO_CHAR(SYSDATE, 'DDMMYYYY_HH24MISS') || '.txt';
    cgey_tools_pkg.put_log_message ('Fichier sortie est '|| lv_name );
    lt_id := UTL_FILE.FOPEN(lv_rep, lv_name, 'w');
    IF UTL_FILE.IS_OPEN(lt_id) THEN
    cgey_tools_pkg.put_log_message (cv_line);
    cgey_tools_pkg.put_log_message('Creation OK du fichier: ' || lv_name);
    ELSE
    cgey_tools_pkg.put_log_message(cv_line);
    cgey_tools_pkg.put_log_message('Probleme ouverture du fichier ' ||lv_name);
    END IF;
    ----EXCEPTION UTL_FILE.WRITE_ERROR, UTL_FILE.INVALID_PATH
    EXCEPTION
    WHEN UTL_FILE.WRITE_ERROR
    THEN raise err_file_write;
    WHEN UTL_FILE.INVALID_PATH
    THEN raise err_file_invalid_path;
    ----Création du fichier sorti
    END;
    BEGIN
    UTL_FILE.PUT_LINE(lt_id, vv_entete);
    ----CURSOR FACTURE A EXTRAIRE
    OPEN cur_fusion_extract_AP_invoice
    (lv_societe_absorbee,
    lv_societe_absorbante,
    lv_date_fusion
    LOOP
    FETCH cur_fusion_extract_AP_invoice
    INTO rec_fusion_extract_AP_invoice;
    EXIT WHEN cur_fusion_extract_AP_invoice%NOTFOUND;
    LV_INVOICE_ID := rec_fusion_extract_AP_invoice.Invoice_Id;
    ln_compteur_hold := 0;
    lv_hode_reason := null;
    lv_release_reason := null;
    OPEN cur_ap_hold_invoices (rec_fusion_extract_AP_invoice.Invoice_Id);
    LOOP
    FETCH cur_ap_hold_invoices
    INTO rec_ap_hold_invoices;
    EXIT WHEN cur_ap_hold_invoices%NOTFOUND;
    ----La première blocage à traiter
    IF ln_compteur_hold =0 THEN
    lv_hode_reason := nvl(rec_ap_hold_invoices.hold_reason, ' ') ;
    lv_release_reason := nvl(rec_ap_hold_invoices.release_reason, ' ');
    ----concatener des autres blocages suivants pour la même facture
    Else
    lv_hode_reason := lv_hode_reason||nvl(rec_ap_hold_invoices.hold_reason, ' ');
    lv_release_reason := lv_release_reason||nvl(rec_ap_hold_invoices.release_reason, ' ');
    END IF;
    ln_compteur_hold := ln_compteur_hold +1;
    END LOOP;
    CLOSE cur_ap_hold_invoices;
    vv_buffer :=
    NVL(lv_societe_absorbee, ' ') ||vv_separator||
    NVL(lv_societe_absorbante, ' ') ||vv_separator||
    NVL(to_char(lv_date_fusion,'dd/mm/yyyy' ), ' ') ||vv_separator||
    NVL(to_char(rec_fusion_extract_AP_invoice.Invoice_Id), ' ') ||vv_separator
    UTL_FILE.PUT_LINE(lt_id, vv_buffer);
    ln_compteur_lignes := ln_compteur_lignes + 1;
    END LOOP;
    cgey_tools_pkg.put_log_message(to_char(ln_compteur_lignes) ||
    ' lignes inserees dans le fichier ' ||lv_rep||'/'
    || lv_name);
    CLOSE cur_fusion_extract_AP_invoice;
    UTL_FILE.FCLOSE(lt_id);
    cgey_tools_pkg.put_log_message(' ');
    cgey_tools_pkg.put_log_message(cv_line);
    EXCEPTION
    WHEN OTHERS THEN
    ROLLBACK;
    Raise err_ecriture_file;
    END ;
    EXCEPTION_
    WHEN err_non_parameter THEN
    pn_retcode := SQLCODE;
    cgey_tools_pkg.put_log_message ('error'||SQLCODE);
    cgey_tools_pkg.put_log_message ('error parameter : Veuillez vous verifier la configuration dans la table CGEY_PARAMETERS!');
    WHEN err_Soc_sr THEN
    pn_retcode := SQLCODE;
    cgey_tools_pkg.put_log_message ('error'||SQLCODE);
    cgey_tools_pkg.put_log_message ('error société_absorbée : Veuillez vous verifier le parameter de la société absorbée !');
    WHEN err_file_write THEN
    UTL_FILE.FCLOSE(lt_id);
    pv_errbuff := SQLERRM;
    pn_retcode := SQLCODE;
    cgey_tools_pkg.put_log_message ('error'||SQLCODE);
    cgey_tools_pkg.put_log_message('erreur write_error:'||pv_errbuff);
    WHEN err_file_invalid_path THEN
    UTL_FILE.FCLOSE(lt_id);
    pn_retcode := SQLCODE;
    pv_errbuff := SQLERRM;
    cgey_tools_pkg.put_log_message ('error'||SQLCODE);
    cgey_tools_pkg.put_log_message('erreur invalid_path:'||pv_errbuff);
    WHEN err_ecriture_file THEN
    UTL_FILE.FCLOSE(lt_id);
    pn_retcode := SQLCODE;
    pv_errbuff := SQLERRM;
    cgey_tools_pkg.put_log_message ('error'||SQLCODE);
    cgey_tools_pkg.put_log_message('err_ecriture_file:'||pv_errbuff);
    WHEN OTHERS THEN
    cgey_tools_pkg.put_log_message ('Une Erreur inconnue arrive lors que l''extraction du FUSION_fac_AP_EXTRAIRE!!');
    END MAIN_FUSION_EXTRACT;
    END SPR_AP_FUSION_EXTRACT_PKG;
    error at line 723 PLS-100103 "EXCEPTION"
    when expecting one of the following Error. Please help me!!
    Thanks a lot
    Edited by: kinkichin on 11 mars 2010 03:19

    Hi ,
    I have made some changes to the code search for --check condition* and check if the condition is correct.
    CREATE OR REPLACE PACKAGE BODY spr_ap_fusion_extract_pkg
    IS
       PROCEDURE main_fusion_extract (
          pv_errbuff   IN OUT   VARCHAR2,
          pn_retcode   IN OUT   NUMBER
       IS
          lv_ligne                        VARCHAR2 (500);
          lv_rep                          VARCHAR2 (260);        --:= '/usr/tmp';
          ln_retcode                      NUMBER;
          vv_separator                    VARCHAR2 (2)                     := ';';
          ln_compteur_lignes              NUMBER                             := 0;
                                   -- nombre de lignes insérées dans le fichier
          ln_counteur                     NUMBER                             := 0;
          vv_buffer                       VARCHAR2 (32000);
          vv_buffer_et                    VARCHAR2 (32000);
          vv_buffer_etold                 VARCHAR2 (32000);
          lt_id                           UTL_FILE.file_type;
          ln_counter                      NUMBER (24, 0);
          lv_seq                          VARCHAR2 (30);
          lv_num_paiement                 VARCHAR2 (10);
          flag_ecriture                   VARCHAR2 (1);
          lv_filler_ligne                 VARCHAR2 (500);
          ln_long_buff                    NUMBER                             := 0;
          ln_compteur_factures            NUMBER                             := 0;
          lv_name                         VARCHAR2 (500);
          vv_entete                       VARCHAR2 (500);
          lv_invoice_id                   ap_invoices_all.invoice_id%TYPE;
          ln_compteur_hold                NUMBER                             := 0;
          lv_hode_reason                  VARCHAR2 (500);
          lv_release_reason               VARCHAR2 (500);
          lv_societe_absorbee             VARCHAR2 (500);
          lv_societe_absorbante           VARCHAR2 (500);
          ln_org_id                       NUMBER                             := 0;
          lv_date_fusion                  DATE;
          err_non_parameter               EXCEPTION;
          err_soc_sr                      EXCEPTION;
          err_file_write                  EXCEPTION;
          err_file_invalid_path           EXCEPTION;
          err_ecriture_file               EXCEPTION;
          CURSOR cur_ap_hold_invoices (
             lv$invoice_id   IN   ap_invoices_all.invoice_id%TYPE
          IS
             SELECT aha.hold_reason, aha.release_reason
               FROM ap_holds_all aha
              WHERE aha.invoice_id = lv$invoice_id;
          rec_ap_hold_invoices            cur_ap_hold_invoices%ROWTYPE;
          --Enregistrement "DESTINATAIRE"
          CURSOR cur_fusion_extract_ap_invoice (
             lv$societe_absorbee    IN   cgey_parameters.varchar2_value%TYPE,
             lv$societe_absorbant   IN   cgey_parameters.varchar2_value%TYPE,
             lv$date_fusion         IN   cgey_parameters.date_value%TYPE
          IS
             SELECT aia.invoice_id, aia.invoice_num,
                    aia.invoice_type_lookup_code, aia.invoice_date, pv.vendor_id,
                    pv.segment1, pv.vendor_name, pvsa.vendor_site_id,
                    pvsa.vendor_site_code, aia.invoice_amount, aia.amount_paid
                                                                              -- RG3: Montant repris = valeur restante a regler
                    ROUND (NVL (SUM (apsa.amount_remaining), 0),
                           2
                          ) amount_remaining,
                    ap_invoices_utility_pkg.get_approval_status
                                             (aia.invoice_id,
                                              aia.invoice_amount,
                                              aia.payment_status_flag,
                                              aia.invoice_type_lookup_code
                                             ) statut,
                    aia.invoice_currency_code, aia.exchange_rate,
                    aia.exchange_rate_type, aia.exchange_date,
                    ate.NAME terms_name, aia.terms_date, aia.SOURCE,
                    aia.doc_category_code, aia.payment_method_lookup_code,
                    aia.pay_group_lookup_code, aia.gl_date, aia.doc_sequence_id,
                    aia.accts_pay_code_combination_id,
                    cgey_tools_pkg.get_segments_from_ccid
                       (aia.accts_pay_code_combination_id
                       ) cle_comptable_founisseur,
                    aia.org_id, aia.payment_cross_rate_type,
                    aia.payment_cross_rate_date, aia.payment_cross_rate,
                    aia.payment_currency_code, aia.attribute_category,
                    aia.attribute1, aia.attribute2, aia.attribute3,
                    aia.attribute4, aia.attribute5, aia.attribute6,
                    aia.attribute7, aia.attribute8, aia.attribute9,
                    aia.attribute10, aia.attribute11, aia.attribute12,
                    aia.attribute13, aia.attribute14, aia.attribute15,
                    aia.global_attribute_category, aia.global_attribute1,
                    aia.global_attribute2, aia.global_attribute3,
                    aia.global_attribute4, aia.global_attribute5,
                    aia.global_attribute6, aia.global_attribute7,
                    aia.global_attribute8, aia.global_attribute9,
                    aia.global_attribute10, aia.global_attribute11,
                    aia.global_attribute12, aia.global_attribute13,
                    aia.global_attribute14, aia.global_attribute15,
                    aia.global_attribute16, aia.global_attribute17,
                    aia.global_attribute18, aia.global_attribute19,
                    aia.global_attribute20
               FROM ap_invoices_all aia,
                    ap_payment_schedules_all apsa,
                    po_vendor_sites_all pvsa,
                    ap_terms ate,
                    po_vendors pv
              WHERE 1 = 1
                -- RG1: Type de la facture
                AND aia.invoice_type_lookup_code IN
                                                  ('STANDARD', 'CREDIT', 'DEBIT')
                AND apsa.invoice_id = aia.invoice_id
                AND pvsa.vendor_site_id = aia.vendor_site_id
                AND ate.term_id = aia.terms_id
                AND pv.vendor_id = aia.vendor_id
                -- RG 1: pour les factures créées antétieur à la date de fusion
                AND aia.creation_date < lv$date_fusion
                -- RG1: Ensemble des lignes de la facture postees
                AND NOT EXISTS (
                       SELECT   'x'
                           FROM ap_invoice_distributions_all aida
                          WHERE aida.invoice_id = aia.invoice_id
                            AND NVL (aida.accrual_posted_flag, 'N' = 'Y')
                                                                 --check condition
                            -- pour la société absorbée
                            AND aia.org_id =
                                          (SELECT organization_id
                                             FROM hr_all_organization_units haou
                                            WHERE haou.NAME = lv$societe_absorbee)
                       GROUP BY aia.invoice_id,
                                aia.invoice_num,
                                aia.invoice_type_lookup_code,
                                aia.invoice_date,
                                pv.vendor_id,
                                pv.segment1,
                                pv.vendor_name,
                                pvsa.vendor_site_id,
                                pvsa.vendor_site_code,
                                aia.invoice_amount,
                                aia.amount_paid
                                               -- RG3: Montant repris = valeur restante a regler
                                apsa.amount_remaining,
                                aia.payment_status_flag,
                                aia.invoice_currency_code,
                                aia.exchange_rate,
                                aia.exchange_rate_type,
                                aia.exchange_date,
                                ate.NAME,
                                aia.terms_date,
                                aia.SOURCE,
                                aia.doc_category_code,
                                aia.payment_method_lookup_code,
                                aia.pay_group_lookup_code,
                                aia.gl_date,
                                aia.doc_sequence_id,
                                aia.accts_pay_code_combination_id,
                                aia.org_id,
                                aia.payment_cross_rate_type,
                                aia.payment_cross_rate_date,
                                aia.payment_cross_rate,
                                aia.payment_currency_code,
                                aia.attribute_category,
                                aia.attribute1,
                                aia.attribute2,
                                aia.attribute3,
                                aia.attribute4,
                                aia.attribute5,
                                aia.attribute6,
                                aia.attribute7,
                                aia.attribute8,
                                aia.attribute9,
                                aia.attribute10,
                                aia.attribute11,
                                aia.attribute12,
                                aia.attribute13,
                                aia.attribute14,
                                aia.attribute15,
                                aia.global_attribute_category,
                                aia.global_attribute1,
                                aia.global_attribute2,
                                aia.global_attribute3,
                                aia.global_attribute4,
                                aia.global_attribute5,
                                aia.global_attribute6,
                                aia.global_attribute7,
                                aia.global_attribute8,
                                aia.global_attribute9,
                                aia.global_attribute10,
                                aia.global_attribute11,
                                aia.global_attribute12,
                                aia.global_attribute13,
                                aia.global_attribute14,
                                aia.global_attribute15,
                                aia.global_attribute16,
                                aia.global_attribute17,
                                aia.global_attribute18,
                                aia.global_attribute19,
                                aia.global_attribute20
                         HAVING NVL (SUM (apsa.amount_remaining), 0) <>
                                                                0
                                                                 --check condition
                       UNION ALL
                       SELECT   aia.invoice_id, aia.invoice_num,
                                aia.invoice_type_lookup_code, aia.invoice_date,
                                pv.vendor_id, pv.segment1, pv.vendor_name,
                                pvsa.vendor_site_id, pvsa.vendor_site_code,
                                aia.invoice_amount, aia.amount_paid
                                                                   -- RG3: Montant repris = valeur restante a regler
                                ap_invoices_utility_pkg.get_prepay_amount_remaining
                                               (aia.invoice_id)
                                                               "Amount_Remaining",
                                ap_invoices_utility_pkg.get_approval_status
                                             (aia.invoice_id,
                                              aia.invoice_amount,
                                              aia.payment_status_flag,
                                              aia.invoice_type_lookup_code
                                             ) statut,
                                aia.invoice_currency_code, aia.exchange_rate,
                                aia.exchange_rate_type, aia.exchange_date,
                                ate.NAME terms_name, aia.terms_date, aia.SOURCE,
                                aia.doc_category_code,
                                aia.payment_method_lookup_code,
                                aia.pay_group_lookup_code, aia.gl_date,
                                aia.doc_sequence_id,
                                aia.accts_pay_code_combination_id,
                                cgey_tools_pkg.get_segments_from_ccid
                                   (aia.accts_pay_code_combination_id
                                   ) cle_comptable_founisseur,
                                aia.org_id, aia.payment_cross_rate_type,
                                aia.payment_cross_rate_date,
                                aia.payment_cross_rate, aia.payment_currency_code,
                                aia.attribute_category, aia.attribute1,
                                aia.attribute2, aia.attribute3, aia.attribute4,
                                aia.attribute5, aia.attribute6, aia.attribute7,
                                aia.attribute8, aia.attribute9, aia.attribute10,
                                aia.attribute11, aia.attribute12, aia.attribute13,
                                aia.attribute14, aia.attribute15,
                                aia.global_attribute_category,
                                aia.global_attribute1, aia.global_attribute2,
                                aia.global_attribute3, aia.global_attribute4,
                                aia.global_attribute5, aia.global_attribute6,
                                aia.global_attribute7, aia.global_attribute8,
                                aia.global_attribute9, aia.global_attribute10,
                                aia.global_attribute11, aia.global_attribute12,
                                aia.global_attribute13, aia.global_attribute14,
                                aia.global_attribute15, aia.global_attribute16,
                                aia.global_attribute17, aia.global_attribute18,
                                aia.global_attribute19, aia.global_attribute20
                           FROM ap_invoices_all aia,
                                po_vendor_sites_all pvsa,
                                ap_terms ate,
                                po_vendors pv
                          WHERE 1 = 1
                            -- RG2: Type de la facture
                            AND aia.invoice_type_lookup_code = 'PREPAYMENT'
                            -- RG2: Amount_Paid Invoice_Amount
                            AND NVL (aia.invoice_amount, 0) =
                                                          NVL (aia.amount_paid, 0)
                            AND pvsa.vendor_site_id = aia.vendor_site_id
                            AND ate.term_id = aia.terms_id
                            AND pv.vendor_id = aia.vendor_id
                            -- RG2: Ensemble des lignes de la facture postees
                            AND NOT EXISTS (
                                   SELECT 'x'
                                     FROM ap_invoice_distributions_all aida
                                    WHERE aida.invoice_id = aia.invoice_id
                                      AND NVL (aida.accrual_posted_flag, 'N') =
                                                                               'Y')
                                                                 --check condition
                            -- pour la société absorbée
                            AND aia.org_id =
                                          (SELECT organization_id
                                             FROM hr_all_organization_units haou
                                            WHERE haou.NAME = lv$societe_absorbee)
                            -- RG 1: pour les factures créées antétieur à la date de fusion
                            AND aia.creation_date < lv$date_fusion
                       GROUP BY aia.invoice_id,
                                aia.invoice_num,
                                aia.invoice_type_lookup_code,
                                aia.invoice_date,
                                pv.vendor_id,
                                pv.segment1,
                                pv.vendor_name,
                                pvsa.vendor_site_id,
                                pvsa.vendor_site_code,
                                aia.invoice_amount,
                                aia.amount_paid,
                                aia.payment_status_flag,
                                aia.invoice_currency_code,
                                aia.exchange_rate,
                                aia.exchange_rate_type,
                                aia.exchange_date,
                                ate.NAME,
                                aia.terms_date,
                                aia.SOURCE,
                                aia.doc_category_code,
                                aia.payment_method_lookup_code,
                                aia.pay_group_lookup_code,
                                aia.gl_date,
                                aia.doc_sequence_id,
                                aia.accts_pay_code_combination_id,
                                aia.org_id,
                                aia.payment_cross_rate_type,
                                aia.payment_cross_rate_date,
                                aia.payment_cross_rate,
                                aia.payment_currency_code,
                                aia.attribute_category,
                                aia.attribute1,
                                aia.attribute2,
                                aia.attribute3,
                                aia.attribute4,
                                aia.attribute5,
                                aia.attribute6,
                                aia.attribute7,
                                aia.attribute8,
                                aia.attribute9,
                                aia.attribute10,
                                aia.attribute11,
                                aia.attribute12,
                                aia.attribute13,
                                aia.attribute14,
                                aia.attribute15,
                                aia.global_attribute_category,
                                aia.global_attribute1,
                                aia.global_attribute2,
                                aia.global_attribute3,
                                aia.global_attribute4,
                                aia.global_attribute5,
                                aia.global_attribute6,
                                aia.global_attribute7,
                                aia.global_attribute8,
                                aia.global_attribute9,
                                aia.global_attribute10,
                                aia.global_attribute11,
                                aia.global_attribute12,
                                aia.global_attribute13,
                                aia.global_attribute14,
                                aia.global_attribute15,
                                aia.global_attribute16,
                                aia.global_attribute17,
                                aia.global_attribute18,
                                aia.global_attribute19,
                                aia.global_attribute20
                         HAVING ap_invoices_utility_pkg.get_prepay_amount_remaining
                                                                   (aia.invoice_id) <>
                                                                                 0
                            AND ap_invoices_utility_pkg.get_approval_status
                                                     (aia.invoice_id,
                                                      aia.invoice_amount,
                                                      aia.payment_status_flag,
                                                      aia.invoice_type_lookup_code
                                                     ) = 'AVAILABLE');
                                                                --check condition;
          rec_fusion_extract_ap_invoice   cur_fusion_extract_ap_invoice%ROWTYPE;
       BEGIN
          ---------Initialisation
          pn_retcode := 0;
          pv_errbuff := NULL;
          ln_compteur_lignes := 0;
          lv_societe_absorbee :=
             cgey_tools_pkg.get_varchar2_parameter ('SPR_FUSION_AP_SOCIETE',
                                                    'SOC_SR'
          lv_societe_absorbante :=
             cgey_tools_pkg.get_varchar2_parameter ('SPR_FUSION_AP_SOCIETE',
                                                    'SOC_CB'
          lv_date_fusion :=
             cgey_tools_pkg.get_date_parameter ('SPR_FUSION_AP_SOCIETE',
                                                'DATE_FUSION'
          lv_rep :=
             cgey_tools_pkg.get_varchar2_parameter ('SPR_FUSION_AP_SOCIETE',
                                                    'REPERTOIRE_SORTIE'
          ----err_non_parameter
          IF    lv_societe_absorbee IS NULL
             OR lv_societe_absorbante IS NULL
             OR lv_date_fusion IS NULL
             OR lv_rep IS NULL
          THEN
             RAISE err_non_parameter;
          END IF;
          SELECT NVL (organization_id, 'NULL')
            INTO ln_org_id
            FROM hr_all_organization_units haou
           WHERE haou.NAME = lv_societe_absorbee;
          ----err_Soc_sr
          IF ln_org_id = 'NULL'
          THEN
             RAISE err_soc_sr;
          END IF;
          BEGIN
             ----Création du fichier sorti
             cgey_tools_pkg.put_log_message
                                   ('Création et Ouverture du fichier en lecture');
             lv_name :=
                   'FUSION_fac_AP_EXTRAIRE'
                || TO_CHAR (SYSDATE, 'DDMMYYYY_HH24MISS')
                || '.txt';
             cgey_tools_pkg.put_log_message ('Fichier sortie est ' || lv_name);
             lt_id := UTL_FILE.fopen (lv_rep, lv_name, 'w');
             IF UTL_FILE.is_open (lt_id)
             THEN
                cgey_tools_pkg.put_log_message (cv_line);
                cgey_tools_pkg.put_log_message (   'Creation OK du fichier: '
                                                || lv_name
             ELSE
                cgey_tools_pkg.put_log_message (cv_line);
                cgey_tools_pkg.put_log_message
                                             (   'Probleme ouverture du fichier '
                                              || lv_name
             END IF;
          ----EXCEPTION UTL_FILE.WRITE_ERROR, UTL_FILE.INVALID_PATH
          EXCEPTION
             WHEN UTL_FILE.write_error
             THEN
                RAISE err_file_write;
             WHEN UTL_FILE.invalid_path
             THEN
                RAISE err_file_invalid_path;
          ----Création du fichier sorti
          END;
          BEGIN
             UTL_FILE.put_line (lt_id, vv_entete);
             ----CURSOR FACTURE A EXTRAIRE
             OPEN cur_fusion_extract_ap_invoice (lv_societe_absorbee,
                                                 lv_societe_absorbante,
                                                 lv_date_fusion
             LOOP
                FETCH cur_fusion_extract_ap_invoice
                 INTO rec_fusion_extract_ap_invoice;
                EXIT WHEN cur_fusion_extract_ap_invoice%NOTFOUND;
                lv_invoice_id := rec_fusion_extract_ap_invoice.invoice_id;
                ln_compteur_hold := 0;
                lv_hode_reason := NULL;
                lv_release_reason := NULL;
                OPEN cur_ap_hold_invoices
                                        (rec_fusion_extract_ap_invoice.invoice_id);
                LOOP
                   FETCH cur_ap_hold_invoices
                    INTO rec_ap_hold_invoices;
                   EXIT WHEN cur_ap_hold_invoices%NOTFOUND;
                   ----La première blocage à traiter
                   IF ln_compteur_hold = 0
                   THEN
                      lv_hode_reason :=
                                      NVL (rec_ap_hold_invoices.hold_reason, ' ');
                      lv_release_reason :=
                                   NVL (rec_ap_hold_invoices.release_reason, ' ');
                   ----concatener des autres blocages suivants pour la même facture
                   ELSE
                      lv_hode_reason :=
                            lv_hode_reason
                         || NVL (rec_ap_hold_invoices.hold_reason, ' ');
                      lv_release_reason :=
                            lv_release_reason
                         || NVL (rec_ap_hold_invoices.release_reason, ' ');
                   END IF;
                   ln_compteur_hold := ln_compteur_hold + 1;
                END LOOP;
                CLOSE cur_ap_hold_invoices;
                vv_buffer :=
                      NVL (lv_societe_absorbee, ' ')
                   || vv_separator
                   || NVL (lv_societe_absorbante, ' ')
                   || vv_separator
                   || NVL (TO_CHAR (lv_date_fusion, 'dd/mm/yyyy'), ' ')
                   || vv_separator
                   || NVL (TO_CHAR (rec_fusion_extract_ap_invoice.invoice_id),
                   || vv_separator;
                UTL_FILE.put_line (lt_id, vv_buffer);
                ln_compteur_lignes := ln_compteur_lignes + 1;
             END LOOP;
             cgey_tools_pkg.put_log_message
                                           (   TO_CHAR (ln_compteur_lignes)
                                            || ' lignes inserees dans le fichier '
                                            || lv_rep
                                            || '/'
                                            || lv_name
             CLOSE cur_fusion_extract_ap_invoice;
             UTL_FILE.fclose (lt_id);
             cgey_tools_pkg.put_log_message (' ');
             cgey_tools_pkg.put_log_message (cv_line);
          EXCEPTION
             WHEN OTHERS
             THEN
                ROLLBACK;
                RAISE err_ecriture_file;
          END;
       EXCEPTION
          WHEN err_non_parameter
          THEN
             pn_retcode := SQLCODE;
             cgey_tools_pkg.put_log_message ('error' || SQLCODE);
             cgey_tools_pkg.put_log_message
                ('error parameter : Veuillez vous verifier la configuration dans la table CGEY_PARAMETERS!'
          WHEN err_soc_sr
          THEN
             pn_retcode := SQLCODE;
             cgey_tools_pkg.put_log_message ('error' || SQLCODE);
             cgey_tools_pkg.put_log_message
                ('error société_absorbée : Veuillez vous verifier le parameter de la société absorbée !'
          WHEN err_file_write
          THEN
             UTL_FILE.fclose (lt_id);
             pv_errbuff := SQLERRM;
             pn_retcode := SQLCODE;
             cgey_tools_pkg.put_log_message ('error' || SQLCODE);
             cgey_tools_pkg.put_log_message ('erreur write_error:' || pv_errbuff);
          WHEN err_file_invalid_path
          THEN
             UTL_FILE.fclose (lt_id);
             pn_retcode := SQLCODE;
             pv_errbuff := SQLERRM;
             cgey_tools_pkg.put_log_message ('error' || SQLCODE);
             cgey_tools_pkg.put_log_message ('erreur invalid_path:' || pv_errbuff);
          WHEN err_ecriture_file
          THEN
             UTL_FILE.fclose (lt_id);
             pn_retcode := SQLCODE;
             pv_errbuff := SQLERRM;
             cgey_tools_pkg.put_log_message ('error' || SQLCODE);
             cgey_tools_pkg.put_log_message ('err_ecriture_file:' || pv_errbuff);
          WHEN OTHERS
          THEN
             cgey_tools_pkg.put_log_message
                ('Une Erreur inconnue arrive lors que l''extraction du FUSION_fac_AP_EXTRAIRE!!'
       END main_fusion_extract;
    END spr_ap_fusion_extract_pkg;*009*
    Edited by: 009 on Mar 11, 2010 3:31 AM

  • Compile debug causes package to become invalid

    We're running 10.2.0.4.0 and I have a large package (7730 lines) which compiles fine on it's own. However, if I try to enable debug mode, I get an error:
    SQL> alter package mypkg compile debug package;
    Warning: Package altered with compilation errors.
    SQL> show errors;
    No errors.
    If I perform another alter command without the debug parameter, then it compiles fine:
    SQL> alter package mypkg compile package;
    Package altered.
    Also, if I compile this package using the "Compile for Debug" button in SQL Developer then I actually get an error message:
    Error(1): PLS-00707: unsupported construct or internal error [2603]
    Does anyone have any idea what's going on here? I've spent the past couple days searching for a solution and while I've seen many cases of people having the PLS-00707 error, I wasn't able to find anyone who only receives it when compiling for debug.

    SQL> CONN SCOTT
    Connected.
    SQL> SELECT * fROM V$VERSION;
    BANNER
    Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
    PL/SQL Release 9.2.0.1.0 - Production
    CORE 9.2.0.1.0 Production
    TNS for 32-bit Windows: Version 9.2.0.1.0 - Production
    NLSRTL Version 9.2.0.1.0 - Production
    SQL> ALTER PACKAGE P1 COMPILE DEBUG;
    Package altered.
    SQL> alter session set events='10938 trace name context level 14';
    Session altered.
    SQL> SELECT P1.ADD_NUM(5,6) FROM DUAL;
    SELECT P1.ADD_NUM(5,6) FROM DUAL
    ERROR at line 1:
    ORA-03113: end-of-file on communication channel
    SQL> SELECT NAME FROM V$DATABASE;
    SELECT NAME FROM V$DATABASE
    ERROR at line 1:
    ORA-03114: not connected to ORACLE
    SQL> SELECT SYSDATE FROM DUAL;
    SELECT SYSDATE FROM DUAL
    ERROR at line 1:
    ORA-03114: not connected to ORACLE
    can one tell me how to solve this problem? thanks in advance.

  • Compiling differently for debug and release

    I want to produce slightly different .class files for my debug and release compilations. For debug, methods like toString() should return rich information which should not be present in the release version. In fact, I want most of my debug specific code to not be included in the final release to keep ti's file size down.
    I realise I can do this by creating something like
    public interface MyGlobals {
        static final boolean DEBUG = false;
    }and implementing this on any class that needs to do debug specific work. However, I'm in a bit of a chicken and egg scenerio. This file needs to exist during development time so that every class that needs it can implement it - however, this would prevent me from dynamically changing it based on whether I'm doing a debug or release build. On the other hand, if the file is generated automatically at compile time, all the classes that need to refer to it will need to refer to a non-existant source file, which will cause problems in my NetBeans IDE.
    Is there a way around this? It would be nice if there was some sort of a configuration file you could specify to to alter how the code is generated. Something similar to C++ #ifdef.

    I realise I can do this by creating something like
    public interface MyGlobals {
    static final boolean DEBUG = false;
    /code]You should be careful about this, by the way, rember that this kind of constant value gets compiled in to classes that reference it, and java doesn't always pick up the need to recompile when the source of MyGlobals changes.
    On the other hand, if you don't declare it final then the compiler can't optimise out code that you want it to exclude for you.

  • Packages  compiled with debug info

    Hi,
    How do we check if a package has been compiled with DEBUG information or not?
    The package could have been compiled like this:
    ALTER PACKAGE pk1 COMPILE DEBUG
    Is there any table that I can check?
    Thanks in advance.
    Sanal Krishnan

    Is this a 10g feature?It seems only user_plsql_object_settings is new in 10g.
    all_plsql_object_settings is available in 9i:
    michaels>  select * from dict where table_name like '%PLSQL%'
    TABLE_NAME                     COMMENTS                               
    ALL_PLSQL_OBJECT_SETTINGS      Compiler settings of stored objects acce
                                   ssible to the user                   
    1 row selected.
    michaels>  select name, type,plsql_debug from sys.all_plsql_object_settings where owner = 'SYSTEM'
    NAME                           TYPE         P
    DEF$_PROPAGATOR_TRIG           TRIGGER      
    REPCATLOGTRIG                  TRIGGER      
    michaels>  select * from v$version
    BANNER                                                         
    Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
    PL/SQL Release 9.2.0.8.0 - Production                          
    CORE     9.2.0.8.0     Production                                      
    TNS for HPUX: Version 9.2.0.8.0 - Production                   
    NLSRTL Version 9.2.0.8.0 - Production                          

  • Maximum package size for data packages was exceeded and Process terminated

    Hello Guru,
    When i am execute the process chain i got this message Maximum package size for data packages was exceeded and Process terminated,any body help to me in this case how can i proceed.
    Thanks & Regards,
    Suresh.

    Hi,
    When the load is not getiing processed due to huge volume of data, or more number of records per data packet, Please try the below option.
    1) Reduce the IDOC size to 8000 and number of data packets per IDOC as 10. This can be done in info package settings.
    2) Run the load only to PSA.
    3) Once the load is succesfull , then push the data to targets.
    In this way you can overcome this issue.
    You can also try RSCUSTV* where * is an integer to change data load settings.
    Change Datapackage size for extraction, use Transaction RSCUSTV6.
    Change Datapackage size when upload from an R/3 system, set this value in R/3 Customizing (SBIW -> General settings -> Control parameters for data transfer).
    IN R/3, T-Code SBIW --> Genaral settings --> Maintain Control Parameters for Data Transfer (source system specific)
    Hope this helps.
    Thanks,
    JituK

  • "Maximum package size for data packages was exceded".

    Hi,
    We are getting the below error.
    "Maximum package size for data packages was exceded".
    In our scenario we are loading the data product key wise (which is a semantic key as well) to the DSO thro’ a start routine.
    The logic in the start routine is such a way that it calculates the unique product counts , product key wise. Hence we are trying to
    group  the product key thro’ semantic groups.
    Ex: In this example the product counts should be A = 1,B=2 ,C = 1
      Product Key
      Products
      A
      1000100
      B
      2000100
      C
      3000100
      B
      2000300
      C
      3000100
    For some product keys the data is so huge that we could not load the data & we are getting the error.
    Please suggest any alternate way to  handle this thro’ code or introducing any other flow.
    Regards,
    Barla

    HI
    we can solve the issue by opening the system setting of data packer size
    like below we have create 2 programs, 1 for open the system settings,2 for
    close the settings .
    1 start program
    data: z_roidocprms like table of
    roidocprms.
    data: wa like line of z_roidocprms.
    wa-slogsys = 'system_client' . wa-maxsize = '50000'. wa-statfrqu = '10'.
    wa-maxprocs = '6'. wa-maxlines = '50000'.
    insert wa into table z_roidocprms.
    Modify roidocprms from table z_roidocprms .
    2 close program
    data: z_roidocprms like table of roidocprms.
    data: wa like line of z_roidocprms.
    wa-slogsys = 'syetm_client' . wa-maxsize = '50000'. wa-statfrqu = '10'.
    wa-maxprocs = '6'. wa-maxlines = '50000'.
    insert wa into table z_roidocprms.
    modify roidocprms from table z_roidocprms .
    data load infopakage settings we have to maintain like
    below
    we have create the process chain like as below
    1 start progarm
    data load infopakage
    2 close program.
    This might fix the problem.
    Regards,
    Polu.

  • Maximum package size for data packages was exceeded?

    Hi Experts,
    I am facing this problem "Maximum package size for data packages was exceeded". When I am trying to laod. I even tried to reduce data packet and change DTP settings in EXtraction to Get All New Data Request by Request but still same error is occuring. Can u Plz focus light on this.
    Thanks,
    Krishna

    You can refer to the below OSS note:
    Note 1144332 - Consulting note: Message RSBK 250: Package size exceeded
    And other related notes: 352038, 417307
    Hope this helps.
    Murali

  • How to specify PACKAGE SIZE for to RFC_READ_TABLE from PyRFC?

    I'm trying to use PyRFC to extract large tables via RFC_READ_TABLE (due to an uncooperative/unsupportive basis team).
    I know that RFC_READ_TABLE supports calling it with PACKAGE SIZE since ERPConnect does it by default.
    In Python for Basis (Part 1), I learned how to specify an Open SQL where clause using the OPTIONS:
    result = connector.call('RFC_READ_TABLE',
                           QUERY_TABLE=tablename,
                           DELIMITER=delimiter,
                           OPTIONS = [{'TEXT':where_clause}])
    Is there a way, and how to specify PACKAGE SIZE in this case?
    Thanks

    Hi,
    the package size works, but you need to call the function module multiple times in a loop. Here's an excerpt of the attached script:
    recordcounter = 1          #needs to be >0 to get the while loop going
    iteration = 0              #the number of times the function module got called
    while recordcounter > 0:  #as long as the function module calll returns rows...
        tempresult = self.call('RFC_READ_TABLE',             
                                ROWSKIPS=iteration*fetchsize,  #defines the number of rows to skip
                                **parameters)
        iteration=iteration+1  #increase the iteration
        data = tempresult['DATA']    #assign the returned rows to a variable
        if len(data) > 0:      #have there been any rows?
            for row in data:      #Do something with them
        else:
            recordcounter=0    #set recordcounter to 0 to end the while loop.
    The script is far away from being perfect. It doesn't deal with RAW fields and the data types it returns are all strings. It does what I needed it to do but it may not be sufficient for what you may be trying to achieve.
    Best regards
    Lars

Maybe you are looking for

  • HT5622 Should my family share one apple id or each have their own?

    Should my family share one apple id or each have their own?  I want to be in control of the id and password since my kids are 10 and 12.

  • I cannot get my MacBook Pro to detect my Apple TV as a display.

    I am running OSX 10.8.5 on a new Macbook with Thunderbolt port. I have a 2nd gen Apple TV with version 6.0 software. Both are connected to the same wifi network. Airplay is enabled on Apple TV. But regardless,  I can't get the AirPlay icon to show up

  • 8.2.1 save for previous version

    I have a few problems with Labview 8.2.1 "Save for Previous Version" for use with a computer with Labview 8.0. 1-Labview 8.0 does not see the VI (created by 8.2.1 that was saved for previous version 8.0) as an 8.0 VI. it complains: "The VI, last save

  • Audigy2ZS, calibrate = 5.1, Speaker Test = w

    Not sure how else to explain this. I was going to try and search for a similar problem, but I don't know how to explain this! Audigy 2 ZS Altec Lansang 25 5. Speakers I've been using this set-up for ages. Messed around in my system and hooked everyth

  • Need User exit/BADI or BTE for FF_5

    Hi, My requirement is to enhance the automatic clearing rules for tcode ff_5. Program RFEBKA00 will upload bank statement items based on the external transaction codes provided by the banks . The standard posting rules will clear a GL bank account us