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,
RonaldIt'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?
SebYes,
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
FBHi,
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 MoritzWeird, 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:19Hi ,
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 KrishnanIs 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,
BarlaHI
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,
KrishnaYou 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?
ThanksHi,
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