Database of Diff - identical package body are declared as different
SQLDeveloper - Version 3.2.10.09Body package (DDL) on the source database and destination are the same, but the body of the package on the basis of data source is marked as "invalid" and package body on the destination database is marked as 'valid' - then Diff of the database of reports that the package of the different agencies. (but the sign indicating the DOF for each of the two package per report body is visible no difference).
After compiling the package body on the source of the database (no DDL change) and when the State of the package body is passed to "valid" - now the database Diff correctly shows no difference.
Is this behavior is intentional or a bug?
>
If there is a difference in the State of the object, do you want to know?
>
Not in a DIFF report, that I'm not. I expect a Different report to show the DDL differences in code source, not the status of a compilation.
From my experience, these reports are used to determine if two different objects are different - not indicate the STATE of the target object is different. There are several reasons why the status might be different and none of them can be corrected by editing the DDL of the object itself.
An invalid or missing object (for example a missing table) could make any number of other objects (views, functions, procedures, packages) not valid. I certainly wouldn't want a difference report to report DIFF in ALL views, functions and thus now just because an item is missing or not valid. Just, which generates a lot of unnecessary "noise" that actually prevents you to see if there is no real difference.
For the differences if the object itself is the same you want NO output or a simple indication MATCHED; not a lot of false alarms. There are easier ways to locate invalid objects that visually wading in a DIFF report.
I would consider it a bug if a report DIFF in the list of the differences that are not related to the DDL of the object itself.
Tags: Database
Similar Questions
-
3.1EA1 members of the package body are not not in the tree
The problem is when you develop the package specification or body package tree, not all members of the body/specification are listed.
Probably in connection with
but do not know if this variant will be covered by the patch.
The example in this case is with the UNPIVOT operator syntax (which uses a FOR...) UNDER construction but is not a PL/SQL loop).
Comment out the c_1 cursor and the TEST procedure is displayed in the browser. Uncomment and get lostCREATE OR REPLACE PACKAGE Test_Package1 AS -- PROCEDURE Test; -- END Test_Package1; / CREATE OR REPLACE PACKAGE BODY Test_Package1 AS PROCEDURE TEST IS /* CURSOR c_1 IS SELECT t1,t2,t3 FROM (SELECT NULL nl, 1 one, 2 two, 3 three FROM dual) UNPIVOT ( (t1, t2, t3) FOR dt_type IN ( (one, nl, nl) AS 'A', (nl, two, nl) AS 'B', (nl, nl, three) AS 'C' ) ); */ CURSOR c_2 IS SELECT t1,t2,t3 FROM (SELECT NULL nl, 1 t1, 2 t2, 3 t3 FROM dual); BEGIN FOR r_rec in c_2 LOOP dbms_output.put_line(r_rec.t1); END LOOP; END; END Test_Package1; /
Published by: Gary Myers on 13/12/2011-14:34
Published by: Gary Myers on 13/12/2011-14:35«.. . Commenting on the first slider allows the TEST... »
As does turn PIVOT UNPIVOT :-) Fixed
-
Hi friends,
Could you help me understand this behavior in oracle.
SQL > create or replace package mypkg is
2 number of v_statevar: = 40;
3 procedure MyProc;
4 end mypkg;
5.
Package created.
SQL > create or replace package body is mypkg
2 procedure MyProc is
3 myval number;
4 start
5. Select x
6 in myval
7 of dependonme;
8
9 - myval: = myval * mypkg.v_statevar;
10 DBMS_OUTPUT. Put_line (' my result is: ' | myVal);
11 end;
12 end mypkg;
13.
Package body created.
SQL > select object_name, object_type, status from user_objects where object_name = 'MYPKG ';
OBJECT_NAME OBJECT_TYPE STATUS
------------------------------ ------------------- -------
PACKAGE VALID MYPKG
VALID PACKAGE BODY MYPKG
SQL > set serveroutput on
SQL > exec mypkg.myproc;
My result is: 5
PL/SQL procedure successfully completed.
SQL > create or replace package mypkg is
2 number of v_statevar: = 150;
3 procedure MyProc;
4 end mypkg;
5.
Package created.
SQL > select object_name, object_type, status from user_objects where object_name = 'MYPKG ';
OBJECT_NAME OBJECT_TYPE STATUS
------------------------------ ------------------- -------
PACKAGE VALID MYPKG
INVALID BODY PACKAGE MYPKG
SQL > set serveroutput on
SQL > exec mypkg.myproc;
My result is: 5
PL/SQL procedure successfully completed.
SQL > select object_name, object_type, status from user_objects where object_name = 'MYPKG ';
OBJECT_NAME OBJECT_TYPE STATUS
------------------------------ ------------------- -------
PACKAGE VALID MYPKG
VALID PACKAGE BODY MYPKG
SQL >
How did change the value of the variable in the package specification makes the invalid package body.
How execution of the procedure of the package is once again the VALID State.
Kimmy says:
Hello carine,.
I'm just setting the variable in the notebook, that variable was not referred to the procedure in the package body, also I'm not change any signature/details of the procedure described in the package specification, then what do the package body are invalid.
There are two parts to this.
(a) by recompiling package specifications, you then automatically invalidates all objects in the database that dependent on it. In this case, the package body is dependent on, so get marked as invalid. When you try and run something in the package Oracle try to compile the package, if it succeeds, it will mark it as valid again (as in your case).
(b) the variables and declarations of a package (public and private) are what constitutes the 'State '. By calling the package, you instantiate a copy in memory to create this state of package for this instantiation of the entire session. By recompiling package specifications (it's not fair that you change the value of the variable, you recompile the spec), you can invalidate the State in memory and therefore potentially invalidate the package body. It depends on your version of the database. In 10g, by invalidating state you will get an exception "State package rejected" when you try to run the package after the change, and then it will automatically compile and validate the package, so that it eventually works ok. From 11 g, there is more fine grain dependencies on the State, so if the change you have made has no effect on what you run, it can validate and run without causing the exception 'package State scrapped ';. He would only do that if it's something that you used.
-
Hi all
Please help me understand why I receive PLS-00323 error when my function exists in the header and body of the package.
Please find below the source code.
Maybe I should post more details here, please tell me what else should I show to get help.
I tried to compile my drawing
EXEC DBMS_UTILITY.compile_schema (pattern = > 'ZVIT');
but still
Select * from user_errors
Returns
NAME TYPE SEQUENCE LINE (LINE)
------------------------------ ------------ ---------- ---------- ----------
TEXT
--------------------------------------------------------------------------------
ATTRIBUTE MESSAGE_NUMBER
--------- --------------
PACKAGE 2 8 12 PKG_PK8842_ACCNOTMOVE BODY
PLS-00323: subprogram or cursor "ACCNOTMOVEFIZ" is declared in a specific package
cation and must be defined in the package body
ERROR 323
PACKAGE 1 3 12 PKG_PK8842_ACCNOTMOVE BODY
PLS-00323: subprogram or cursor "ACCNOTMOVEJUR" is declared in a specific package
cation and must be defined in the package body
ERROR 323
2 selected lines.
source code:
CREATE OR REPLACE PACKAGE ZVIT. PKG_PK8842_AccNotMove
AS
FUNCTION AccNotMoveJUR)
p_contragentId dwh_CR_contragent.ID%TYPE,
p_date Date)
RETURN number;
FUNCTION AccNotMoveFIZ)
p_contragentId dwh_CR_contragent.ID%TYPE,
p_date Date)
RETURN number;
FUNCTION DtLastMove)
p_Id B2_OLAP. DIMAACCOUNT_ALL.ID%TYPE)
Date of RETURN;
END;
/
CREATE OR REPLACE PACKAGE BODY ZVIT. PKG_PK8842_AccNotMove
AS
FUNCTION AccNotMoveJUR)
p_contragentId zvit.dwh_CR_contragent.ID%TYPE,
p_date Date)
RETURN number
IS
l_Result Number (1);
l_contragentId zvit.dwh_CR_contragent.ID%TYPE;
l_dateopen Date;
Date of l_dtMove1;
Date of l_dtMove2;
BEGIN
l_Result: = 0;
BEGIN
Select Distinct a.contragentid
In l_contragentId
OF B2_OLAP. DIMAACCOUNT_ALL one
where a.contragentid = p_contragentId
and a.BACCOUNTID in (2600,2650)
and a.ACCOUNTSTATEID not in (1,2);
EXCEPTION
WHEN NO_DATA_FOUND THEN
l_contragentId: = NULL;
END;
IF l_contragentId IS NOT NULL THEN
l_Result: = 0;
ON THE OTHER
BEGIN
Select MAX (a.dateopen)
In l_DateOpen
OF B2_OLAP. DIMAACCOUNT_ALL one
where a.contragentid = p_contragentId
and a.BACCOUNTID in (2600,2650)
and a.ACCOUNTSTATEID <>2
and a.DateOpen > p_date;
EXCEPTION
WHEN NO_DATA_FOUND THEN
l_DateOpen: = NULL;
END;
IF l_DateOpen IS NOT NULL THEN
l_Result: = 0;
ON THE OTHER
BEGIN
SELECT MAX (d.arcdate)
In l_dtMove1
OF B2_OLAP. DIMAACCOUNT_ALL has,
B2_OLAP.AR_DOCUMENT d,
B2_OLAP. DIMDOCUMENTTYPE dt
WHERE a.contragentid = p_contragentId
and a.BACCOUNTID in (2600,2650)
and d.ACCOUNTBID = a.Id
and d.arcdate > = p_date
and d.DOCUMENTTYPEID = dt.id
and dt. OPERATIONTYPEBYSUMMAID not to (2,3)
and not in Substr (d.accountano, 1, 4) ('2608 ', ' 2658');
EXCEPTION
WHEN NO_DATA_FOUND THEN
l_dtMove1: = NULL;
END;
IF l_dtMove1 IS NULL THEN
BEGIN
SELECT MAX (d.arcdate)
In l_dtMove1
OF B2_OLAP. DIMAACCOUNT_ALL has,
B2_OLAP.AR_DOCUMENT d,
B2_OLAP. DIMDOCUMENTTYPE dt
WHERE a.contragentid = p_contragentId
and a.BACCOUNTID in (2600,2650)
and d.ACCOUNTBID = a.Id
and d.arcdate > = p_date
and d.DOCUMENTTYPEID = dt.id
and dt. OPERATIONTYPEBYSUMMAID not to (2,3)
and not in Substr (d.accountano, 1, 4) ('2608 ', ' 2658');
- and d.DOCUMENTSTATEID = 2
EXCEPTION
WHEN NO_DATA_FOUND THEN
l_dtMove1: = NULL;
END;
END IF;
IF l_dtMove1 IS NULL THEN
BEGIN
SELECT MAX (d.arcdate)
In l_dtMove1
OF B2_OLAP. DIMAACCOUNT_ALL has,
B2_OLAP.AR_DOCUMENT d,
B2_OLAP. DIMDOCUMENTTYPE dt
WHERE a.contragentid = p_contragentId
and a.BACCOUNTID in (2600,2650)
and d.ACCOUNTAID = a.Id
and d.arcdate > = p_date
and d.DOCUMENTTYPEID = dt.id
and dt. OPERATIONTYPEBYSUMMAID not to (2,3);
EXCEPTION
WHEN NO_DATA_FOUND THEN
l_dtMove1: = NULL;
END;
END IF;
IF l_dtMove1 IS NULL THEN
BEGIN
SELECT MAX (d.arcdate)
In l_dtMove1
OF B2_OLAP. DIMAACCOUNT_ALL has,
B2_OLAP.AR_DOCUMENT d,
B2_OLAP. DIMDOCUMENTTYPE dt
WHERE a.contragentid = p_contragentId
and a.BACCOUNTID in (2600,2650)
and d.arcdate > = p_date
and d.ACCOUNTAID = a.Id
and d.DOCUMENTTYPEID = dt.id
and dt. OPERATIONTYPEBYSUMMAID not to (2,3);
- and d.DOCUMENTSTATEID = 2
EXCEPTION
WHEN NO_DATA_FOUND THEN
l_dtMove1: = NULL;
END;
END IF;
IF l_dtMove1 IS NULL THEN
l_Result: = 1;
On the other
l_Result: = 0;
End If;
END IF;
END IF;
RETURN l_Result;
END AccNotMoveJUR;
--------------------------------------------------------------------------------
FUNCTION AccNotMoveFIZ)
p_contragentId zvit.dwh_CR_contragent.ID%TYPE,
p_date Date)
RETURN number
IS
l_Result Number (1);
l_contragentId zvit.dwh_CR_contragent.ID%TYPE;
l_dateopen Date;
Date of l_dtMove1;
BEGIN
l_Result: = 0;
BEGIN
Select Distinct a.contragentid
In l_contragentId
OF B2_OLAP. DIMAACCOUNT_ALL one
where a.contragentid = p_contragentId
and a.BACCOUNTID in (2620,2625)
and a.ACCOUNTSTATEID not in (1,2);
EXCEPTION
WHEN NO_DATA_FOUND THEN
l_contragentId: = NULL;
END;
IF l_contragentId IS NOT NULL THEN
l_Result: = 0;
ON THE OTHER
BEGIN
Select MAX (a.dateopen)
In l_DateOpen
OF B2_OLAP. DIMAACCOUNT_ALL one
where a.contragentid = p_contragentId
and a.BACCOUNTID in (2620,2625)
and a.ACCOUNTSTATEID <>2
and a.DateOpen > p_date;
EXCEPTION
WHEN NO_DATA_FOUND THEN
l_DateOpen: = NULL;
END;
IF l_DateOpen IS NOT NULL THEN
l_Result: = 0;
ON THE OTHER
BEGIN
SELECT MAX (d.arcdate)
In l_dtMove1
OF B2_OLAP. DIMAACCOUNT_ALL has,
B2_OLAP.AR_DOCUMENT d,
B2_OLAP. DIMDOCUMENTTYPE dt
WHERE a.contragentid = p_contragentId
and a.BACCOUNTID in (2620,2625)
and d.ACCOUNTBID = a.Id
and d.arcdate > = p_date
and d.DOCUMENTTYPEID = dt.id
and dt. OPERATIONTYPEBYSUMMAID not to (2,3)
and Substr(d.accountano,1,4) <>'2628';
EXCEPTION
WHEN NO_DATA_FOUND THEN
l_dtMove1: = NULL;
END;
IF l_dtMove1 IS NULL THEN
BEGIN
SELECT MAX (d.arcdate)
In l_dtMove1
OF B2_OLAP. DIMAACCOUNT_ALL has,
B2_OLAP.AR_DOCUMENT d,
B2_OLAP. DIMDOCUMENTTYPE dt
WHERE a.contragentid = p_contragentId
and a.BACCOUNTID in (2620,2625)
and d.arcdate > = p_date
and d.ACCOUNTBID = a.Id
and d.DOCUMENTTYPEID = dt.id
and dt. OPERATIONTYPEBYSUMMAID not to (2,3)
and Substr(d.accountano,1,4) <>'2628';
- and d.DOCUMENTSTATEID = 2
EXCEPTION
WHEN NO_DATA_FOUND THEN
l_dtMove1: = NULL;
END;
END IF;
IF l_dtMove1 IS NULL THEN
BEGIN
SELECT MAX (d.arcdate)
In l_dtMove1
OF B2_OLAP. DIMAACCOUNT_ALL has,
B2_OLAP.AR_DOCUMENT d,
B2_OLAP. DIMDOCUMENTTYPE dt
WHERE a.contragentid = p_contragentId
and a.BACCOUNTID in (2620,2625)
and d.ACCOUNTAID = a.Id
and d.arcdate > = p_date
and d.DOCUMENTTYPEID = dt.id
and dt. OPERATIONTYPEBYSUMMAID not to (2,3);
EXCEPTION
WHEN NO_DATA_FOUND THEN
l_dtMove1: = NULL;
END;
END IF;
IF l_dtMove1 IS NULL THEN
BEGIN
SELECT MAX (d.arcdate)
In l_dtMove1
OF B2_OLAP. DIMAACCOUNT_ALL has,
B2_OLAP.AR_DOCUMENT d,
B2_OLAP. DIMDOCUMENTTYPE dt
WHERE a.contragentid = p_contragentId
and a.BACCOUNTID in (2620,2625)
and d.arcdate > = p_date
and d.ACCOUNTAID = a.Id
and d.DOCUMENTTYPEID = dt.id
and dt. OPERATIONTYPEBYSUMMAID not to (2,3);
- and d.DOCUMENTSTATEID = 2
EXCEPTION
WHEN NO_DATA_FOUND THEN
l_dtMove1: = NULL;
END;
END IF;
IF l_dtMove1 IS NULL THEN
l_Result: = 1;
On the other
l_Result: = 0;
End If;
END IF;
END IF;
RETURN l_Result;
END AccNotMoveFIZ;
--------------------------------------------------------------------------------
FUNCTION DtLastMove)
p_Id B2_OLAP. DIMAACCOUNT_ALL.ID%TYPE)
Date of RETURN
IS
l_Result Date;
Date of l_DtLast1;
Date of l_DtLast2;
Date of l_DtLast3;
Date of l_DtLast4;
BEGIN
l_Result: = NULL;
BEGIN
SELECT MAX (d.arcdate)
In l_DtLast1
B2_OLAP.AR_DOCUMENT d,
B2_OLAP. DIMDOCUMENTTYPE dt
WHERE d.ACCOUNTBID = p_Id
- and d.arcdate > = p_date
and d.DOCUMENTTYPEID = dt.id
and dt. OPERATIONTYPEBYSUMMAID not to (2,3)
and Substr (d.accountano, 1, 4) not in ('2608', ' 2658 ', ' 2628');
EXCEPTION
WHEN NO_DATA_FOUND THEN
l_DtLast1: = NULL;
END;
BEGIN
SELECT MAX (d.arcdate)
In l_DtLast2
B2_OLAP.AR_DOCUMENT d,
B2_OLAP. DIMDOCUMENTTYPE dt
WHERE d.ACCOUNTBID = p_Id
and d.DOCUMENTTYPEID = dt.id
and dt. OPERATIONTYPEBYSUMMAID not to (2,3)
and Substr (d.accountano, 1, 4) not in ('2608', ' 2658 ', ' 2628');
- and d.DOCUMENTSTATEID = 2
EXCEPTION
WHEN NO_DATA_FOUND THEN
l_DtLast2: = NULL;
END;
BEGIN
SELECT MAX (d.arcdate)
In l_DtLast3
B2_OLAP.AR_DOCUMENT d,
B2_OLAP. DIMDOCUMENTTYPE dt
WHERE d.ACCOUNTAID = p_Id
and d.DOCUMENTTYPEID = dt.id
and dt. OPERATIONTYPEBYSUMMAID not to (2,3);
EXCEPTION
WHEN NO_DATA_FOUND THEN
l_DtLast3: = NULL;
END;
BEGIN
SELECT MAX (d.arcdate)
In l_DtLast4
B2_OLAP.AR_DOCUMENT d,
B2_OLAP. DIMDOCUMENTTYPE dt
WHERE d.ACCOUNTAID = p_Id
and d.DOCUMENTTYPEID = dt.id
and dt. OPERATIONTYPEBYSUMMAID not to (2,3);
- and d.DOCUMENTSTATEID = 2
EXCEPTION
WHEN NO_DATA_FOUND THEN
l_DtLast4: = NULL;
END;
l_DtLast1:=NVL(l_DtLast1,to_date('01.01.1900','dd.mm.yyyy'));
l_DtLast2:=NVL(l_DtLast2,to_date('01.01.1900','dd.mm.yyyy'));
l_DtLast3:=NVL(l_DtLast3,to_date('01.01.1900','dd.mm.yyyy'));
l_DtLast4:=NVL(l_DtLast4,to_date('01.01.1900','dd.mm.yyyy'));
l_Result: = Greatest (l_DtLast1, l_DtLast2, l_DtLast3, l_DtLast4);
IF l_Result = TO_DATE('01.01.1900','dd.mm.yyyy') THEN
l_Result: = NULL;
END IF;
RETURN l_Result;
END DtLastMove;
---////////////////////////////////////////////////////
END;
/
You declare your parameter with a different type between the specification and body, your statements must match.
-
Procedure is not recognized in the package body
I have this error message:
Compile for HR.MILOS_PACKAGE BODY of PACKAGE errors
Error: PLS-00323: subprogram or cursor "RAISE_SALARY" is declared in a package specification and must be defined in the package body
Online: 19
Text: IF (l_exists)
I deffined in the whole of the body after the first procedure that is no problem.
I don't know what the problem is. There is no other sugestions compiler.
Procedure works very well when packing.
PROCEDURE RAISE_SALARY (p_perc p_dep_id NUMBER, NUMBER) IS
v_emp_id employees.employee_id%TYPE;
v_sal employees.salary%TYPE;
v_avg_sal employees.salary%TYPE;
CURSOR c_salaries IS SELECT employee_id, salary employees
If NOT EXISTS (SELECT 1 from employees e WHERE e.manager_id = employees.employee_id)
and department_id = p_dep_id;
CURSOR c_salaries_m IS SELECT employee_id, salary employees
WHERE employe_id IN (SELECT distinct manager_id of employees)
and department_id = p_dep_id;
Start
SELECT AVG (salary) IN the v_avg_sal FROM Employees WHERE department_id = p_dep_id;
OPEN c_salaries.
LOOP
EXTRACT c_salaries INTO v_emp_id, v_sal;
EXIT WHEN c_salaries % NOTFOUND;
IF v_sal + 1 > 3 * v_avg_sal
THEN UPDATE employees SET salary = 3 * v_avg_sal
WHERE employe_id = v_emp_id;
UPDATE of OTHER employees SET salary = salary * to_number ('1' |'.) ' || p_perc)
WHERE employe_id = v_emp_id;
END IF;
END LOOP;
CLOSE C_salaries;
OPEN c_salaries_m.
LOOP
EXTRACT c_salaries_m INTO v_emp_id, v_sal;
EXIT WHEN c_salaries_m % NOTFOUND;
IF v_sal + 5 > 3 * v_avg_sal
THEN UPDATE employees SET salary = 3 * v_avg_sal
WHERE employe_id = v_emp_id;
UPDATE of OTHER employees SET salary = salary * to_number ('1' |'.) ' || (p_perc + 50))
WHERE employe_id = v_emp_id;
END IF;
END LOOP;
CLOSE C_salaries_m;
end RAISE_SALARY;
Compile for HR.MILOS_PACKAGE BODY of PACKAGE errors
Error: PLS-00323: subprogram or cursor "RAISE_SALARY" is declared in a package specification and must be defined in the package body
We hear... you have defined the raise_salary procedure in the package specification but not in the package body. (pretty clear)
not in the package body means:
the statement could be different...
PROCEDURE RAISE_SALARY (NUMBER, p_dep_id NUMBER p_perc)
so:
are identical named parameters?
they have identical data types?
vary according to the assigned default values?
vary according to its use (IN/OUT/IN OUT) - (why did not specify the use anyway?)
HTH
-
Hello people.
Oracle Database 10 g Express Edition Release 10.2.0.1.0 - product
PL/SQL Release 10.2.0.1.0 - Production
Hope you are all well. I am creating a package as a procedure body, but I get the following error:
- Error (37.7): PL/SQL: statement ignored
- Error (38,15): PLS-00201: identifier ' C1. Email_address' must be declared
I'm fairly inexperienced, so the resolution may be simple, but I'm still confused as to what to do. Here is my code:
create or replace PACKAGE BODY "CHECK_VISA_DATE" AS PROCEDURE "VISA_EXPIRY" IS l_msg_body varchar2(32000) := null; l_count number := 0; BEGIN FOR c1 IN (SELECT E.EMPLOYEE_ID, E.CLOCK_NUMBER, E.LAST_NAME, E.FIRST_NAME, E.EMAIL_ADDRESS, E.VISA_EXPIRY FROM EMPLOYEE E, EMPLOYEE_CONTRACT EC WHERE E.EMPLOYEE_ID = EC.EMPLOYEE_ID AND EC.ACTUAL_END IS NULL AND EC.FUTURE_CONTRACT = 1 AND EC.SUB_TASK = 1 AND E.VISA_EXPIRY < SYSDATE + 60) LOOP IF l_count = 0 THEN L_MSG_BODY := 'As of today, your visa is due to expire in 60 days '||chr(10)|| CHR(10)|| ' Visa Expiration: '|| c1.VISA_EXPIRY; END IF; l_count := l_count + 1; END LOOP; IF L_MSG_BODY IS NOT NULL THEN HTMLDB_MAIL.SEND( P_TO => c1.EMAIL_ADDRESS, P_BODY => L_MSG_BODY, P_SUBJ => 'Visa Expiration '|| c1.VISA_EXPIRY); END IF; END "VISA_EXPIRY"; END "CHECK_VISA_DATE";
Hello
AquaNX4 wrote:
...
Output is an email, so there really isn't any type of insert statements, or additional information to give...
If there is no relevant information in AMPEMP or EMP_CONTRACT tables, then you don't need to question the in your procedure.
Error (24,112): PLS-00302: component 'VISA_EXPIRY' must be declared
There is no column called
VISA_EXPIRis the cursor. Did you mean to say
E VISA_EXPIR?
-
PACKAGE BODY APPS. AD_ZD_ADOP contains errors
APP TIER - Linux - SLES 11 - SP2 - x86_64
DB LEVEL - Linux for system Z - SLES 11 - SP2 - s390
I encounter errors in the body to Package APPS. AD_ZD_ADOP, that has brought all the patches to a status quo on our schedule instance.
The sequence of events have been
The following hotfixes have been applied.
- Patch 19462638
- Patch 19197270
- Patch 21132723
- 19330775
- 20677045
- 19259764
Doc 1617461.1 was followed - B path of
After Patch 19259764 has been applied, all steps until step 8 of Doc 1617461.1 have been completed.
Failure of the fs_clone step (step 9). My colleague opened a SR - advice was far from expected.
Yesterday, I took this with success and more cloned the fix for the file system to perform file system (1383621.1) - however, I'm still not able to run fs_clone with success.
Even a basic ADADMIN session fails.
Here are the errors while trying to compile APPS package bodies. AD_ZD_ADOP
SQL > alter package APPS. AD_ZD_ADOP compile body;WARNING: The bodies of Package modified with compilation errors.
SQL > show errors;
Errors for BODY of PACKAGE applications. AD_ZD_ADOP:LINE/COL ERROR
-------- -----------------------------------------------------------------
2503/3 PL/SQL: statement ignored
2503/7 PLS-00201: identifier ' SYS. DBMS_METADATA_UTIL' must be declared
SQL >Also while trying to launch ADADMIN, I get errors themselves.
Error of Administration AD:
ORA-04063: package body "APPS. AD_ZD_ADOP"contains errors
Could not insert the record of the action in the table of patches
Error of Administration AD:
Error when you try to insert adadmin task CMP_INVALID action
Update running adadmin of failure actions
Error of Administration AD:
The following ORACLE error:
ORA-01756: city not properly finished chain
occurred while executing the SQL statement:
UPDATE ad_adop_session_patches set status = 'F' where status = 'R' and
as numero_de_bogue ' ADADMIN
Error of Administration AD:
Table ad_adop_session_patches update errors
You must check the file
/U02/fs_ne/EBSapps/log/ADadmin/log/ADadmin.log
to find errors.
Can someone please. I have also a SR - but nice try various channels to find a solution.
Hello
The necessary subsidies on the SYS package may be missing. DBMS_METADATA_UTIL.
Try this command (as sysdba) and compile the package:
Grant execute on SYS. DBMS_METADATA_UTIL applications;
Kind regards
Bashar
-
ORA-04063: package body "APPS. HZ_PARTY_STAGE"contains errors
Hello
Received the error when compile. Checked in the Note: 427418.1 did not work. Help, please. It's 12.1.3, 11.2.0.3 Linux database.
SQL > alter package APPS. HZ_PARTY_STAGE compile body;
WARNING: The bodies of Package modified with compilation errors.
SQL > show err
Errors for BODY of PACKAGE applications. HZ_PARTY_STAGE:
LINE/COL ERROR
-------- -----------------------------------------------------------------
85/5 PL/SQL: statement ignored
85/5 PLS-00201: identifier ' AD_CTX_DDL. DROP_PREFERENCE' must be
has said
95/5 PL/SQL: statement ignored
95/5 PLS-00201: identifier ' AD_CTX_DDL. CREATE_PREFERENCE' must be
has said
96/5 PL/SQL: statement ignored
96/5 PLS-00201: identifier ' AD_CTX_DDL. SET_ATTRIBUTE' must be declared
3313/28 PL/SQL: statement ignored
LINE/COL ERROR
-------- -----------------------------------------------------------------
3313/28 PLS-00201: identifier ' AD_CTX_DDL. SYNC_INDEX' must be declared
3322/27 PL/SQL: statement ignored
3322/27-PLS-00201: identifier ' AD_CTX_DDL. SYNC_INDEX' must be declared
3352/24 PL/SQL: statement ignored
3352/24 PLS-00201: identifier ' AD_CTX_DDL. SYNC_INDEX' must be declared
3362/23 PL/SQL: statement ignored
3362/23 PLS-00201: identifier ' AD_CTX_DDL. SYNC_INDEX' must be declared
3399/26 PL/SQL: statement ignored
3399/26-PLS-00201: identifier ' AD_CTX_DDL. SYNC_INDEX' must be declared
3409/26 PL/SQL: statement ignored
3409/26-PLS-00201: identifier ' AD_CTX_DDL. SYNC_INDEX' must be declared
LINE/COL ERROR
-------- -----------------------------------------------------------------
3447/27 PL/SQL: statement ignored
3447/27-PLS-00201: identifier ' AD_CTX_DDL. SYNC_INDEX' must be declared
SQL > grant execute on AD_CTX_DDL. DROP_PREFERENCE applications;
Grant execute on AD_CTX_DDL. Applications DROP_PREFERENCE
*
ERROR on line 1:
ORA-04042: procedure, function, package, or package body does not exist
The solution in the doc, you mentioned in your first post. Run the dctxpkg.sql script and pass the correct settings and make sure that it runs successfully.
Thank you
Hussein
-
ORA-04063: package body 'SYS. DBMS_SQLTUNE error' during the upgrade
Hello
I am trying to upgrade the oracle 10.2.0.2 on 11.2.0.1 with dbua tool database. During the upgrade "Oracle Server" ORA-04063: package body 'SYS. DBMS_SQLTUNE"error has occurred.
In the oracle server log:
---------------------------------------------------------------------------------------------------------------
REM create the automated SQL Tuning task
REM If the task exists already (catproc is re-of running) is not error.
Start
2 sys.dbms_sqltune_internal.i_create_auto_tuning_task;
exception 3
so 4 than others then
5 if (sqlcode =-13607) then - task already exists
6 null;
7 other
8 lift;
9 end if;
10 end;
11.
Start
*
ERROR on line 1:
ORA-04063: package body 'SYS. DBMS_SQLTUNE"contains errors
ORA-06508: PL/SQL: called program unit is not found: 'SYS. DBMS_SQLTUNE ".
ORA-06512: at line 8 level
------------------------------------------------------------------------------------------------------------------------------------------------------------
After unsuccessful upgrade I have restore and recover the database. SYS. The DBMS_SQLTUNE package and package body were valid. But when I compile them the package becomes invalid.
I get the error and reach 390221.1 metalink Note:
------------------------------------------------------------------------------------------------------------------------------------------------------
Solution
-Drop synonyms
Drop public synonym existsnode.
excerpt from Drop public synonym;
----------------------------------------------------------------------------------------------------------------------------------------------------
But there are no synonyms, which is mentioned in this note in my PB.
How can I solve this problem? Thank you.If you have not read the note ORA-04063: package body 'SYS. DBMS_SQLTUNE' errors - upgrade to 10 G and 11 G fails on ID Dbms_sqltune 1271490.1+?
Nicolas.
-
ORA-04063: package body 'SYS. DBMS_CUBE_EXP"got error in expdp
Oracle 11.2.0.2 on Redhat. Received the error when export a schema
Thhs is a routine operation and still works. Recent changes to the database are down some patterns that we thought is perhaps not helpful, refer to[oracle@cchorbi1 admin]$ expdp bi/pass@cchbi2 schemas=BISTG directory=DATA_PUMP_DIR parallel=12 dumpfile=bistg_bi2_0315_%U.dmp logfile=bistg_bi2_0315.log .... Starting "BI"."SYS_EXPORT_SCHEMA_02": bi/********@cchbi2 schemas=BISTG directory =DATA_PUMP_DIR parallel=12 dumpfile=bistg_bi2_0315_%U.dmp logfile=bistg_bi2_0315. log Estimate in progress using BLOCKS method... Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA ORA-39126: Worker unexpected fatal error in KUPW$WORKER.GET_TABLE_DATA_OBJECTS [] ORA-31642: the following SQL statement fails: BEGIN "SYS"."DBMS_CUBE_EXP".SCHEMA_CALLOUT(:1,0,1,'11.02.00.00.00'); END; ORA-06512: at "SYS.DBMS_SYS_ERROR", line 86 ORA-06512: at "SYS.DBMS_METADATA", line 1245 ORA-04063: package body "SYS.DBMS_CUBE_EXP" has errors ORA-06508: PL/SQL: could not find program unit being called: "SYS.DBMS_CUBE_EXP" ORA-06512: at "SYS.DBMS_SYS_ERROR", line 86 ORA-06512: at "SYS.KUPW$WORKER", line 8353
. Removed default schema users arehttp://abcdba.com/abcdbaserver11gdefaultschema
The remaining default schemas areANONYMOUS,APPQOSSYS,CTXSYS,DIP,EXFSYS,MDDATA,MDSYS,OE,OLAPSYS, ORACLE_OCM,ORDDATA,ORDPLUGINS,ORDSYS,OWBSYS,OWBSYS_AUDIT,PM,SCOTT, SH,SI_INFORMTN_SCHEMA,SPATIAL_CSW_ADMIN_USR,SPATIAL_WFS_ADMIN_USR WMSYS
SYS objects. DBMS_CUBE_EXP causing ORA-06508 exists but not validAPEX_030200,APEX_PUBLIC_USER,DBSNMP,FLOWS_FILES,MGMT_VIEW, OUTLN,SYS,SYSMAN,SYSTEM,XDB,XS$NULL
We cannot restore the State before drooping users as it occurred last week and the backup is replaced by a more recent and a newapplication schema is generated and we want to keep?select owner,object_name,object_type,status from dba_objects where object_name='DBMS_CUBE_EXP' SYS DBMS_CUBE_EXP PACKAGE VALID SYS DBMS_CUBE_EXP PACKAGE BODY INVALID PUBLIC DBMS_CUBE_EXP SYNONYM VALID
Is there a way to solve this problem without restoring database?
Thank youIn fact, I had the same problem with DBMS_CUBE_EXP. Oracle Enterprise Manager alert recommended remove EXECUTE on the public DBMS_LOB. This caused several * SYS packages and package bodies to go invalid. I have granted EXECUTE the user (CTXSYS, OLAPSYS, ect) and then compiled the object successfully.
-
I did change in a package body procedure, I do not change the signature of procedure or anything, I just changed the code in a procedure.
Now, I'll run this body with "CREATE or REPLACE PACKAGE BODY... "in the management of production database.
1. my Spec package will go to the invalid state? I also should recompile Spec in the database?
2 now, I understand that the sessions connected, clients java, use the older version of the package, not the most recent body database compiled just body. Will they have an error at the first appeal according to the packaging and the second call will succeed for them?
I have Oracle 10 g.
Published by: CharlesRoos on Sep 9, 2010 07:44Apart from what Sybrand said to do in the way of ITIL, an understanding of which is State package would be helpful...
Packages tend to fail because of their 'package '. A package has a 'State' when it contains the package variable and constant level etc. and the package is called. On the first calling package, the 'State' is created in memory to hold the values of these variables, etc. If an object including the package depends on for example a table is changed somehow example deleted and recreated due to data dependencies, the package then takes a State not VALID. When you do then appealed to the package, Oracle examines the status and see that it is not valid, then determines that the package has a "State". Because something changed the package depended on, the State is taken as being obsolete and is ignored, which causes the error "State package has been abandoned" message.
If a package has no variables of level package etc. i.e. the 'State' and then, taking the same example above, the whole takes an INVALID state, but when you make then a call to the package, Oracle considers as invalid, but knows that there is no 'State' attached to it and is therefore able to recompile the package automatically and then continue execution without causing error messages. The only exception here is if the thing that the package was dependent on a change of such kind that the package may not compile, in which case you will get an invalid error package type.
And if you want to know how we prevent Jetty package States...
Move all variables and constants in a stand-alone package specification and to refer to those of your original package. So when the status of your original packing is invlidated for some reason, it has no State package and can be recompiled automatically, however the packaging containing the vars/const is not cancelled because it has no dependencies, so the State that is in memory for this package will remain and may continue to be used.
As for package-level sliders, you will need to make these premises to the procedures/functions using them as you won't be able of sliders reference in all of packages like that (not sure on the use of the REF CURSOR but... exists for me to study!)
This first example shows the State being disabled by adding a new column on the table and causing to give a 'Package State scrapped' error...
SQL> set serveroutput on SQL> SQL> create table dependonme (x number) 2 / Table created. SQL> SQL> insert into dependonme values (5) 2 / 1 row created. SQL> SQL> create or replace package mypkg is 2 procedure myproc; 3 end mypkg; 4 / Package created. SQL> SQL> create or replace package body mypkg is 2 v_statevar number := 5; -- this means my package has a state 3 4 procedure myproc is 5 myval number; 6 begin 7 select x 8 into myval 9 from dependonme; 10 11 myval := myval * v_statevar; 12 DBMS_OUTPUT.PUT_LINE('My Result is: '||myval); 13 end; 14 end mypkg; 15 / Package body created. SQL> SQL> exec mypkg.myproc My Result is: 25 PL/SQL procedure successfully completed. SQL> SQL> select object_name, object_type, status from user_objects where object_name = 'MYPKG' 2 / OBJECT_NAME -------------------------------------------------------------------------------------------------- OBJECT_TYPE STATUS ------------------- ------- MYPKG PACKAGE VALID MYPKG PACKAGE BODY VALID SQL> SQL> SQL> alter table dependonme add (y number) 2 / Table altered. SQL> SQL> select object_name, object_type, status from user_objects where object_name = 'MYPKG' 2 / OBJECT_NAME -------------------------------------------------------------------------------------------------- OBJECT_TYPE STATUS ------------------- ------- MYPKG PACKAGE VALID MYPKG PACKAGE BODY INVALID SQL> SQL> exec mypkg.myproc BEGIN mypkg.myproc; END; * ERROR at line 1: ORA-04068: existing state of packages has been discarded ORA-04061: existing state of package body "SCOTT.MYPKG" has been invalidated ORA-06508: PL/SQL: could not find program unit being called: "SCOTT.MYPKG" ORA-06512: at line 1 SQL> SQL> select object_name, object_type, status from user_objects where object_name = 'MYPKG' 2 / OBJECT_NAME -------------------------------------------------------------------------------------------------- OBJECT_TYPE STATUS ------------------- ------- MYPKG PACKAGE VALID MYPKG PACKAGE BODY INVALID SQL> SQL> exec mypkg.myproc PL/SQL procedure successfully completed. SQL> SQL> select object_name, object_type, status from user_objects where object_name = 'MYPKG' 2 / OBJECT_NAME -------------------------------------------------------------------------------------------------- OBJECT_TYPE STATUS ------------------- ------- MYPKG PACKAGE VALID MYPKG PACKAGE BODY VALID
And the following example shows how to get the package in their own specifications of package variables, allows the package to automatically recompile when it is called even if it has become invalid by the action to add a column to the table.
SQL> drop table dependonme 2 / Table dropped. SQL> SQL> drop package mypkg 2 / Package dropped. SQL> SQL> set serveroutput on SQL> SQL> create table dependonme (x number) 2 / Table created. SQL> SQL> insert into dependonme values (5) 2 / 1 row created. SQL> SQL> create or replace package mypkg is 2 procedure myproc; 3 end mypkg; 4 / Package created. SQL> SQL> create or replace package mypkg_state is 2 v_statevar number := 5; -- package state in seperate package spec 3 end mypkg_state; 4 / Package created. SQL> SQL> create or replace package body mypkg is 2 -- this package has no state area 3 4 procedure myproc is 5 myval number; 6 begin 7 select x 8 into myval 9 from dependonme; 10 11 myval := myval * mypkg_state.v_statevar; -- note: references the mypkg_state package 12 DBMS_OUTPUT.PUT_LINE('My Result is: '||myval); 13 end; 14 end mypkg; 15 / Package body created. SQL> SQL> exec mypkg.myproc My Result is: 25 PL/SQL procedure successfully completed. SQL> SQL> select object_name, object_type, status from user_objects where object_name = 'MYPKG' 2 / OBJECT_NAME -------------------------------------------------------------------------------------------------- OBJECT_TYPE STATUS ------------------- ------- MYPKG PACKAGE VALID MYPKG PACKAGE BODY VALID SQL> SQL> alter table dependonme add (y number) 2 / Table altered. SQL> SQL> select object_name, object_type, status from user_objects where object_name = 'MYPKG' 2 / OBJECT_NAME -------------------------------------------------------------------------------------------------- OBJECT_TYPE STATUS ------------------- ------- MYPKG PACKAGE VALID MYPKG PACKAGE BODY INVALID SQL> SQL> exec mypkg.myproc My Result is: 25 PL/SQL procedure successfully completed.
-
Who changed a Package body?
Whats up...
I like to keep an eye on a BODY of PACKAGE that is changing that invalidates the use. I know I can do this using:
SELECT the owner, object_name, object_type, status, last_ddl_time
FROM dba_objects
WHERE object_name = 'GOLF_CONTEST_PKG. '
AND owner = 'GOLF_OWNER. '
AND object_type = 'PACKAGE BODY'
/
However, I need to know WHO did it. I have DBA_AUDIT_TRAIL running, but it's just at a level where I can look for INVALID connections/locking accounts.
What can I do to ensure that I catch that that body will invalid? Can I create a trigger? Right now, my solution is to check the LAST_DDL_TIME on the body, check using DBA_DEPENDENCIES dependents and questioning from DBA_AUDIT_TRAIL to see if it comes up with anything. I'll scratch the DBA_ERRORS table with the following code:
SELECT *.
OF dba_errors
WHERE NAME = 'GOLF_CONTEST_PKG '.
AND owner = 'GOLF_OWNER. '
AND TYPE = 'PACKAGE BODY '.
/
If the coil of this single query above is not 'no line selected', then I will advise me and a colleague who noticed the invalidation on the body.
In addition, it is a strange behavior, because the body actually seems to be going back to an old version, when this happens; code is missing. There are only 3 people working on this code, and the aforementioned developer is one who saw it happen twice in the last month and recompiled the package to find that it is an older version and it needs to recreate the body using the archived code.
Version: Oracle 10.2.0.4
Platform: 64 - bit Red Hat
Thank you!On the event system not pulling triggers, check that the SYSTEMTRIG_ENABLED parameter is not set to FALSE in the initialization file (it should only be set to false in special cases like the upgrade of database).
-
BASE_CONVERT Package body
I have a few Pro * C files which contain a call to base_convert.oct_to_dec (). I moved recently my application to another machine, and the results are not good.
When I run
Select dba_objects object_name object_type, owner, State where object_name = 'BASE_CONVERT;
The result set contains a synonym and a package only, no package body. How to create the package base_convert body.
The database is the 9.2.0.5 version.
Thank you
WES
Published by: Ed Sears on April 23, 2009 15:55Your script is available here in metalink:
PL/SQL: Package to convert numbers between HEX/DECIMAL/OCTAL/BINARY-67533.1 -
package body "APPS. AD_ZD_ADOP' mistakes adoption apply fail
Hello to any help/solution for this error:
EBS version 12.2
Intend to upgrade to 12.2.4 then only may apply Doc-Id 1617461.1 :
"adoption phase = apply patches = 19330775, 20677045 = /hotpatch merge Yes = yes".
Validation of the system configuration...
[ERROR] Could not execute the SQL statement:
Select AD_ZD_ADOP. The double GET_INVALID_NODES()
[ERROR] Error message:
[ERROR] Could not execute the SQL statement:
Select AD_ZD_ADOP. The double GET_INVALID_NODES()
[ERROR] Error message:
[UNEXPECTED] '-1' nodes are listed in the table ADOP_VALID_NODES, but not in the FND_NODES table.
[UNEXPECTED] To fix this problem, run AutoConfig on the nodes '-1 '.
[UNEXPECTED] Error checking if it is an instance of multi node
SQL > ALTER PACKAGE APPS. BODY OF AD_ZD_ADOP OF COMPILATION;
WARNING: The bodies of Package modified with compilation errors.
SQL > SHOW ERRORS, PACKAGE BODY APPS. AD_ZD_ADOP
Errors for BODY of PACKAGE applications. AD_ZD_ADOP:
LINE/COL ERROR
-------- -----------------------------------------------------------------
505/13 PL/SQL: statement ignored
507/86 PL/SQL: ORA-00904: "SESSION_TYPE": invalid identifier
511/13 PL/SQL: statement ignored
513/86 PL/SQL: ORA-00904: "SESSION_TYPE": invalid identifier
521/12 PL/SQL: statement ignored
524/18 PL/SQL: ORA-00904: "SESSION_TYPE": invalid identifier
533/9 PL/SQL: statement ignored
535/121 PL/SQL: ORA-00904: "SESSION_TYPE": invalid identifier
575/9 PL/SQL: statement ignored
577/123 PL/SQL: ORA-00904: "SESSION_TYPE": invalid identifier
1580/7 PL/SQL: statement ignored
LINE/COL ERROR
-------- -----------------------------------------------------------------
1582/65 PL/SQL: ORA-00904: "SESSION_TYPE": invalid identifier
SQL >
Thank you!
Luis
Hello
The solution is:
1. check that your ad_adop_session_patches.xdf file is version 120.6.12020000.4
grep Header $AD_TOP/patch/115/xdf/ad_adop_session_patches.xdf
2. If the version is correct, then run this command (from Bug 18544083 : ADOPTION: ORA-04063: "APPS.) (AD_ZD_ADOP"CONTAINS ERRORS / ORA-00904:"SESSION_TYPE"):
adjava-mx512m - nojit oracle.apps.fnd.odf2.FndXdfCmp applsys APPS apps APPS thin
: : table $AD_TOP/patch/115/xdf/ad_adop_session_patches.xdf $FND_TOP/patch/115/xdf/xsl changedb = y Please put in the host current (complete), port, and SID
NOTE: If you want to test the command first, please change "changedb = y" to "changedb = n".
3. Please retry compilation AD_ZD_ADOP (or try running ADZDADOPB.pls).
4. If the compilation of work, retry the patch.
Kind regards
Luis
-
When I change the package body, down to show me ' calculation of breadcrumbs to... body "in infinitive loop until I get out.
On
—–Oracle SQL Developer 4.0.2.15
Version 4.0.2.15
Build 15.21The IDE version: 12.1.3.2.41.140418.1111
Product ID: oracle.sqldeveloper
Product version: 12.2.0.15.21Version
——-Version of the component
========= =======
Oracle IDE 4.0.2.15.21
Java (TM) Platform 1.7.0_65
Support versioning 4.0.2.15.21Thanks for the update. I pass the developer and I hope he finds that they are useful.
A preliminary analysis shows some problems of Java:
1. report of the discharge of the thread Analyzer is a little misleading because of https://bugs.openjdk.java.net/browse/JDK-8036823
2 possible endless loop in the ScaledBlit routine on the thread main event: https://bugs.openjdk.java.net/browse/JDK-8028539
Question 2 currently has no resolution, but there are a few (a potential solution?) fix for jdk1.8.0_40 (8u40). The latest official version is 8u11.
Assuming that the number 2 is the culprit on Ubuntu, just like on Windows, then 1st edition probably does not concern us. Just for reference, a backport of the Java correction for the 1st edition exists on jdk 1.7 and 1.8, but has yet to be officially released on either.
Kind regards
Gary
Maybe you are looking for
-
Scroll bar disappears when clicking on the upward or downward from v32.0.0
The scroll bar disappears in the main window, and also in scroll areas by clicking on the top and bottom.
-
Satellite L350 number pad work sometimes only
Does anyone have an idea why the keypad doesn't work sometimes? Not in EXCEL or in the composition of YAHOO to name a few. He now works for a reason any 123456789 Thank you
-
Hello I want to build a program with card PCI 6221 multifunction. In the program, it generates two analog signals to trigger a CCD camera and turn on an LED. Meanwhile, program to acquire an analog signal for a specific duration, and images that are
-
I want to make a batch file, so I can save some files on another disk
On XP, you can make one. BAT file with a text editor and it will work. On XP Professional the. BAT file that make you in word processor does not work. Can someone help me please?
-
I had some trouble with my desktop to the end. in any case, I went to check what programs are installed by going to the "Add/Remove Programs" option of the control panel. When I chose this option and scrolled down to Windows XP - Service Pack 3 - the