Recompiling Invalid Object (Got Error)
OWNER OBJECT_NAME OBJECT_TYPE STATUS
AI C_SMS_P PACKAGE BODY INVALID
PUBLIC KRN_MESSAGEDISPATCH SYNONYM INVALID
QF DOPPELTE_QOTS_BEREINIGEN PROCEDURE INVALID
QF INSTR_DPLR_ID TRIGGER INVALID
QLEXP EXPORT PACKAGE BODY INVALID
QLEXP EXPORT_ORGANIZER PACKAGE BODY INVALID
QLEXP QLEXP_ABO PACKAGE BODY INVALID
(A) For above object first i have tried like:
EXEC DBMS_DDL.alter_compile('PACKAGE BODY','AI','C_SMS_P');
EXEC DBMS_DDL.alter_compile('PACKAGE BODY','BLOOMIMP','BLOOMBERG');
EXEC DBMS_DDL.alter_compile('SYNONYM','PUBLIC','KRN_MESSAGEDISPATCH');
EXEC DBMS_DDL.alter_compile('PROCEDURE','QF','DOPPELTE_QOTS_BEREINIGEN');
EXEC DBMS_DDL.alter_compile('TRIGGER','QF','INSTR_DPLR_ID');
EXEC DBMS_DDL.alter_compile('PACKAGE BODY','QLEXP','EXPORT');
EXEC DBMS_DDL.alter_compile('PACKAGE BODY','QLEXP','EXPORT_ORGANIZER');
EXEC DBMS_DDL.alter_compile('PACKAGE BODY','QLEXP','QLEXP_ABO');
But its not working
(B) then i have tried like this and got:
SQL> ALTER PACKAGE AI.C_SMS_P COMPILE BODY;
ALTER PACKAGE AI.C_SMS_P COMPILE BODY
ORA-04052: error occurred when looking up remote object [email protected]
ORA-00604: error occurred at recursive SQL level 1
ORA-01017: Benutzername/Kennwort ungültig; Anmeldung abgelehnt
ORA-02063: preceding line from PRICE
SQL> ALTER PACKAGE BLOOMIMP.BLOOMBERG COMPILE BODY;
Package body altered
SQL> ALTER PROCEDURE QF.DOPPELTE_QOTS_BEREINIGEN COMPILE;
ALTER PROCEDURE QF.DOPPELTE_QOTS_BEREINIGEN COMPILE
ORA-04052: error occurred when looking up remote object [email protected]
ORA-00604: error occurred at recursive SQL level 1
ORA-01017: Benutzername/Kennwort ungültig; Anmeldung abgelehnt
ORA-02063: preceding line from PRICE
SQL> ALTER TRIGGER QF.INSTR_DPLR_ID COMPILE;
Warning: Trigger altered with compilation errors
SQL> ALTER PACKAGE QLEXP.EXPORT COMPILE BODY;
Warning: Package body altered with compilation errors
SQL> ALTER PACKAGE QLEXP.EXPORT_ORGANIZER COMPILE BODY;
Warning: Package body altered with compilation errors
SQL> ALTER PACKAGE QLEXP.QLEXP_ABO COMPILE BODY;
Warning: Package body altered with compilation errors
So , anyone please let me know why (A) is not working, (B) got that warning.
>
ORA-04052: error occurred when looking up remote object [email protected]
ORA-00604: error occurred at recursive SQL level 1
ORA-01017: Benutzername/Kennwort ungültig; Anmeldung abgelehnt
ORA-02063: preceding line from PRICE
It seems that the database link PRICE.WORLD does not work because username/password are invalid ?
Can you check it ?
What is your Oracle version ?
Similar Messages
-
Recompile invalid dbms_xdb with errors
Hello !
I found in EP that the dbms_xdb Package-body is invalid !
as system and/ or sys I try'd to recompile ist but it didn't work:
Line # = 620 Column # = 3 Error Text = PL/SQL: Statement ignored
Line # = 620 Column # = 16 Error Text = PLS-00201: Bezeichner 'SYS.CHECK_UPGRADE' muss deklariert werden
( its german,--> 'SYS.CHECK_UPGRADE' identifier have to declare,
status = invalid
what to do ?Hi,
Those nonexistent attributes are synonyms. Somehow you lost them or you never created them. The script is in %ORACLE_HOME%\RDBMS\ADMIN\catsqlt.sql. Copy-paste the CREATE SYNONYM and GRANT fragments into sqlplus and execute them as SYS. In case of error, you'd probably need to execute whole script.
Bartek -
REUSE SETTINGS supresses error messages when compiling an invalid object
Hello,
my test:
Create a table and a packaged procedure referencing the table. Then drop the table and recompile the package:
CREATE TABLE x (
y NUMBER
CREATE OR REPLACE PACKAGE y
AS
PROCEDURE z;
END y;
SHOW ERRORS
CREATE OR REPLACE PACKAGE BODY y
AS
PROCEDURE z
IS
v_count PLS_INTEGER;
BEGIN
SELECT COUNT(*)
INTO v_count
FROM x;
END z;
END y;
SHOW ERRORS
DROP TABLE x;
PROMPT 1.Compile package
ALTER PACKAGE y COMPILE;
SHOW ERRORS
PROMPT 2.Compile package body
ALTER PACKAGE y COMPILE BODY;
SHOW ERRORS
PROMPT 3.Compile package with "REUSE SETTINGS"
ALTER PACKAGE y COMPILE REUSE SETTINGS;
SHOW ERRORS
PROMPT 4.Compile package body with "REUSE SETTINGS"
ALTER PACKAGE y COMPILE BODY REUSE SETTINGS;
SHOW ERRORS
SELECT object_name
,object_type
FROM user_objects
WHERE status = 'INVALID';
--DROP PACKAGE y;Partly unexpected output
Tabelle wurde erstellt.
Package wurde erstellt.
Keine Fehler.
Package Body wurde erstellt.
Keine Fehler.
Tabelle wurde gelöscht.
1.Compile package
Warnung: Paket wurde mit Kompilierungsfehlern geõndert.
Keine Fehler.
2.Compile package body
Warnung: Paketrumpf wurde mit Kompilierungsfehlern geõndert.
Fehler bei PACKAGE BODY Y:
LINE/COL ERROR
8/3 PL/SQL: SQL Statement ignored
10/8 PL/SQL: ORA-04044: procedure, function, package, or type is not
allowed here
3.Compile package with "REUSE SETTINGS"
Warnung: Paket wurde mit Kompilierungsfehlern geõndert.
Keine Fehler.
4.Compile package body with "REUSE SETTINGS"
Warnung: Paketrumpf wurde mit Kompilierungsfehlern geõndert.
Keine Fehler.
OBJECT_NAME OBJECT_TYPE
Y PACKAGE BODY
1 Zeile wurde ausgewõhlt.It says
- Table created
- Package created
- Package body created
- Table dropped
- Package header compiled with errors (why?)
- Package body compiled with errors (shown error is expected)
- Package header compiled with errors (again why?)
- Package body compiled with errors (no errors shown)
So why is the header compiled with errors, when the object is valid.
And why is no error shown for COMPILE REUSE SETTINGS when there are errors for the body?
I use REUSE SETTINGS when recompiling invalid objects that were compiled for debug with
ALTER PACKAGE abc COMPILE PLSQL_DEBUG = TRUE REUSE SETTINGSRegards
Marcus
Version:
SQL*Plus: Release 10.2.0.1.0 - Production on Di Jan 27 12:45:20 2009
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit Production
With the Partitioning, OLAP and Data Mining optionsHi,
From SQL Reference Manual [REUSE SETTINGS|http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_1007.htm#BGBGEIGD]:
Specify REUSE SETTINGS to prevent Oracle from dropping and reacquiring compiler switch settings. With this clause, Oracle preserves the existing settings and uses them for the recompilation of any parameters for which values are not specified elsewhere in this statement.
For backward compatibility, Oracle Database sets the persistently stored value of the PLSQL_COMPILER_FLAGS initialization parameter to reflect the values of the PLSQL_CODE_TYPE and PLSQL_DEBUG parameters that result from this statement.
Regards, -
Informatica client connecting error: received an invalid object
Hi guys,
I downloaded Informatica PowerCenter and PowerConnect Adapters 8.1.1 SP5 for Linux x86 (32-bit) from edelivery and install the power service and metadata manager component on a RH linux box.
Information of the repository oracle database :
version-->10.2.0.4
NLS_CHARACTERSET-->AL32UTF8
Information of the user informatica:
LANG = C
LC_ALL = C
PATH = /usr/xpg4/bin:/app/database/10g/bin:/app/database/10g/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:/app/database/10g/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
LD_LIBRARY_PATH = /app/database/10g/lib
ORACLE_HOME = /app/database/10g
Information of code page when installation:
ISO 8859-1 Western European
Locale information of xp client system
ALL US english setting
The installation log seems good and no error or warning. How erver when I connect with PowerCenter Designer from my windows xp laptop, it indicate the connection error. I check the server side log with admin console, and in the Intergration service log part found these information:
ERROR Tue Apr 14 20:46:12 2009 node01_EP066020 2867821472 29321 SF_34031 Client application [], connection [4]: received an invalid object.
ERROR Tue Apr 14 20:46:09 2009 node01_EP066020 2899291040 29321 SF_34031 Client application [], connection [3]: received an invalid object.
ERROR Tue Apr 14 20:46:06 2009 node01_EP066020 2878311328 29321 SF_34031 Client application [], connection [2]: received an invalid object.
ERROR Tue Apr 14 20:46:02 2009 node01_EP066020 2888801184 29321 SF_34031 Client application [], connection [1]: received an invalid object.
I don't know where the error is, maybe it's a error related to the repository?
btw, I connection to the Powercenter with the port 6008 which I found in the integration service's log. Coz Oracle application server on the linux box used the default port.
Today I apply the sp5 to the server for component Power Service and apply the sp5 to client software, but the error is still the same.
Anybody can give me some hint or solution?
Thanks in advance.
Regards,
ScottHi Scott,
Did you solved your problem already?
I want to connect with Peoplesoft as well, byt can't find the PowerConnect tool on edelivery, can you help me with that?
I als need som documentation on PowerConnect, can you download it there as well?
Remc0 -
Invalid objects found in Repository
I am installing grid control 11.1 to redhat 5.2, with repository database of 11.2 locate on the same host. At step 7 of 13 connect to database, I provided the host, port, service and sys password and clicked Next, and I got a simple error messageInvalid objects found in Repository. Re-compile the objects using:
$ORACLE_HOME/sysman/admin/emdrep/sql/core/latest/admin/admin_recompile_invalid.sql
<EM_REPOS_USER>.Ther is no other clues given. I checked the script admin_recompile_invalid.sql, it is pretty simple, just goes though all_objects and dba_synonyms for any invalide obejct for the <EM_REPOS_USER> user. If find, recompile. I am not sure what user is <EM_REPOS_USER> but the two queries returns nothing in my database for any/all users. The script should just pass and doing nothing.
What could be wrong?
Where I can find more info?Did you try recompiling invalid objects using utlrp.sql
Also check invalid objects using :
select count(*) from dba_objects where status<>'VALID';
Regards
Rajesh -
Invalid objects showed up after import
Hello,
I wanted to migrate a lot of databases to 1 database, where I created schemas for every database. I imported each database to new schema and now I have one database with 30 schemas. When I try to export (full export) database like user "system", export is clear without any warnings, but when I try to import this database to another database a lot of warnings showed up. Warnings like:
IMP-00061: Warning: Object type "SYSTEM". "Repco $ _OBJECT_NULL_VECTOR" already exists with a different identifier
IMP-00019: row was rejected because of an error ORACLE 1
IMP-00003: ORACLE error occurred 1
ORA-00001: the unique constraints violation (SYSMAN.MGMT_ARU_FAM_PRD_PK)
import was completed successfully with warnings. I try to recompile invalid objects which were created in this database, a lot of objects recompile ok but a few not
SQL> select * from all_objects where status='INVALID';
OWNER OBJECT_NAME
SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE
CREATED LAST_DDL TIMESTAMP STATUS T G S
SYS DEF$_AQCALL
4943 SYNONYM
17.04.07 17.04.07 2007-04-17:03:41:22 INVALID N N N
SYS DEFTRAN
4955 VIEW
17.04.07 17.04.07 2007-04-17:03:41:23 INVALID N N N
OWNER OBJECT_NAME
SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE
CREATED LAST_DDL TIMESTAMP STATUS T G S
PUBLIC DEFTRAN
4956 SYNONYM
17.04.07 17.04.07 2007-04-17:03:41:23 INVALID N N N
SYS DEFTRANDEST
4957 VIEW
OWNER OBJECT_NAME
SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE
CREATED LAST_DDL TIMESTAMP STATUS T G S
17.04.07 17.04.07 2007-04-17:03:41:23 INVALID N N N
PUBLIC DEFTRANDEST
4958 SYNONYM
17.04.07 17.04.07 2007-04-17:03:50:09 INVALID N N N
SYS DBMS_DEFER_SYS
OWNER OBJECT_NAME
SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE
CREATED LAST_DDL TIMESTAMP STATUS T G S
5054 PACKAGE BODY
17.04.07 17.04.07 2007-04-17:03:50:35 INVALID N N N
SYS DBMS_SNAPSHOT
7493 PACKAGE BODY
17.04.07 17.04.07 2007-04-17:03:50:56 INVALID N N N
Please, I need your advice to solve this issues... Thank you for any help...thank you for your feedback...
I am trying do it this on Windows Server 2008 R2 x64 + Oracle v. 10.2.0.3.0
Export command:
exp system/system@db01 file=C:\ICP\db01.DMP log=C:\ICP\db01.LOG FULL=Y
Import commad:
imp system/system@db01 FILE=C:\ICP\db01.DMP LOG=C:\ICP\db01.LOG FULL=Y IGNORE=Y
"You should not be importing SYSTEM objects as these are seeded objects and are already present in the target database." so how to import whole database?
Thank you... -
Invalid object name for Next value from sequence using sqlserver 2012
Select SequenceName.nextVal into lint from dual ;
Invalid object name error message is coming when using sqlserver 2012
Please helpHello,
Create the sequence and a stored procedure which returns the sequence as follows:
CREATE SEQUENCE mySequence_tinyint AS tinyint
GO
CREATE PROCEDURE Central_CreateSequence
@NextID BIGINT OUTPUT
AS
BEGIN
SET NOCOUNT ON;
SELECT @NextID = NEXT VALUE FOR mySequence_tinyint;
END
GO
In PowerBuilder, run this script:
long ll = -10
DECLARE proc PROCEDURE FOR Central_CreateSequence @NextID = :ll OUTPUT;
EXECUTE proc;
FETCH proc INTO :ll;
CLOSE proc;
IF SQLCA.SQLcode <> 0 THEN
MessageBox("error", SQLCA.sqlerrtext)
END IF
MessageBox("", ll)
I know there can be other ways to return the next value of the sequence...
HTH
Jacob -
Hi friends,
how do i compile all the invalid objects in one time ???
thanks,
RajHi,
Here's what I do when I need to recompile a user's schema. Don't say it's bullet proof, but so far it has worked for me. I use it after each deployment to a schema.
procedure recompile_schema
is
l_type user_objects.object_type%type;
l_name user_objects.object_name%type;
l_stat user_objects.status%type;
compile_error exception;
pragma exception_init(compile_error, -24344);
cursor dep_cur
is
select object_id
from (select o1.object_id
,o1.object_name
,o1.object_type
,o1.status
,d1.referenced_name
,d1.referenced_type
,case
when exists (select null
from user_dependencies d2
where d2.referenced_name = d1.name
and d2.referenced_type = d1.type)
then
1
else
0
end
is_referenced
from user_dependencies d1, user_objects o1
where o1.object_type in
('PACKAGE'
,'PROCEDURE'
,'FUNCTION'
,'PACKAGE BODY'
,'VIEW'
,'MATERIALIZED VIEW'
,'TRIGGER'
,'SYNONYM')
and d1.name = o1.object_name
and d1.type = o1.object_type)
where is_referenced = 1
start with is_referenced = 0
connect by object_name = prior referenced_name
and object_type = prior referenced_type
group by object_id
order by max(level) desc, object_id;
procedure do_compile(pi_object_type in user_objects.object_type%type
,pi_object_name in user_objects.object_name%type)
is
begin
--dbms_output.put_line('Compiling: ' || pi_object_name);
if pi_object_type = 'PACKAGE BODY'
then
exe('ALTER PACKAGE ' || pi_object_name || ' COMPILE BODY');
else
exe('ALTER ' || pi_object_type || ' ' || pi_object_name || ' COMPILE');
end if;
exception
when compile_error
then
dbms_output.put_line(sqlerrm);
end do_compile;
begin
dbms_output.put_line('recompiling invalid objects in schema ' || user);
-- loop through all objects in order of dependancy.
for rec in dep_cur
loop
-- select the objects attributes (type, name and status).
select object_type, object_name, status
into l_type, l_name, l_stat
from user_objects
where object_id = rec.object_id;
-- if the object is invalid, recompile it.
if l_stat = 'INVALID'
then
dbms_output.put_line('Compiling(1): ' || l_name);
do_compile(l_type, l_name);
end if;
end loop;
-- Recompile all remaining INVALID OBJECTS (all those without dependencies).
for rec
in (select object_type, object_name
from user_objects
where status = 'INVALID'
and object_type in
('PACKAGE'
,'PROCEDURE'
,'FUNCTION'
,'TRIGGER'
,'PACKAGE BODY'
,'VIEW'
,'MATERIALIZED VIEW'
,'TRIGGER'
,'SYNONYM'))
loop
dbms_output.put_line('Compiling(2): ' || rec.object_name);
do_compile(rec.object_type, rec.object_name);
end loop;
end recompile_schema;Regards
Peter -
Need shell Script for Invalid object
Hi All,
Can anyone post me a script for checking the invalid objects in 10g/11g database.
The should should check for invalid objects,recompile and sent the email .I could think fo something like below(And applicable to multiple SID's running on the server) and i tested it it works(bash shell script)
Assumptions:
You have environmental file to set ORACLE_HOME ORACLE_SID
say in this example
/oracle/env
ls -ltr
env_ORCL.sh
env_TEST.sh
env_HR.sh
You also have uuencode rpm installed to use along with mailx command(or else get it installed not big deal). uuencode is required
to send as mail attachment
1)I have kept SID list in file (/oracle/INVALID directory for eg)
cat SID.lst
ORCL
TEST
HR
If you have lot of SID's you can populate the file using ( ps -ef|grep -i pmon | grep -v grep | awk '{print$9}' | sed 's/ora_pmon_//g' > SID.lst)
2) Here are the list of SQL's(/oracle/INVALID directory
cat invalid_pre.sql (For listing invalid objects per instance)
set echo off
set heading off
set time off
set timing off
spool invalid.log append
break on instance_name
select instance_name , a.*
from (select owner,count(*) from dba_objects where status='INVALID' group by owner) a, v$instance;
spool off
exit;
cat invalid_compile.sql--to recompile invalid objects
set echo off
set termout off
set feedback off
@?/rdbms/admin/utlrp.sql 4; (Note you change degree 4 or 8 accordingly)
exit;
cat invalid_post.sql--to list post recompilation
set echo off
set heading off
set time off
set timing off
spool invalid_post.log append
break on instance_name
select instance_name , a.*
from (select owner,count(*) from dba_objects where status='INVALID' group by owner) a, v$instance;
spool off
exit;
3)here is the shell script
cat invalid.sh
for i in `cat SID11g.lst`
do
cd /oracle/env/
source env_$i.sh
cd /oracle/INVALID
sqlplus "/as sysdba" @invalid_pre.sql
sqlplus "/as sysdba" @invalid_compile.sql
sqlplus "/as sysdba" @invalid_post.sql
done
uuencode invalid.log invalid.log | mailx -s "Invalid" <your mail id>
uuencode invalid_post.log invalid_post.log | mailx -s "Invalid" <your mail id>
4) Finally run the shell script, hopefully you should receive email :-)
I have tested it on bash
./invalid.sh
Once tested you can schedule it in cron
Edited by: vreddy on Jul 19, 2012 9:57 AM -
Shell script to validate all invalid objects?
Hello DBA's.
New to DBA ing and so seek your help.. I am using oracle Oracle9i Release on a Solaris box.
I need a shell script that will check all invalid objects on a DB and would validate it by running utlrp.sql. I know i can do this manually but i am asked to automate the process..
Kindly suggest where i can find a shell script or share this script with me.. it would be much appreciated.
Regards!OK, this is possible, and here is one way entirely within SQL*Plus where it will try once more to recompile invalid objects, please note that this (top one) will work only on 11g or greater, and only getting around to testing this properly now:
#!/bin/ksh
. $HOME/.profile
export ORACLE_SID=<your_SID>
sqlplus '/ as sysdba' << EOF
set serveroutput on
set pagesize 1000
@${ORACLE_HOME}/rdbms/admin/utlrp.sql
begin
for cur in (select do.owner || '.' || do.object_name module, object_type from dba_objects do join obj$ o on (do.object_id = o.obj#) where o.status = 5)
loop
begin
execute immediate 'alter ' || cur.object_type || ' ' || cur.module || ' compile';
exception when others then continue;
end;
end loop;
end;
spool <path_and_filename_of_your_Invalid_Objects_output_file>
select do.owner || '.' || do.object_name from dba_objects do join obj$ o on (do.object_id = o.obj#) where o.status = 5;
spool off
quit
EOF
exit $?For < 11g:
#!/bin/ksh
. $HOME/.profile
export ORACLE_SID=<your_SID>
sqlplus '/ as sysdba' << EOF
set serveroutput on
set pagesize 0
set heading off
set termout off
set feedback off
@${ORACLE_HOME}/rdbms/admin/utlrp.sql
spool /tmp/recompile.sql
begin
for cur in (select do.owner || '.' || do.object_name module, object_type from dba_objects do join obj$ o on (do.object_id = o.obj#) where o.status = 5)
loop
dbms_output.put_line( 'alter ' || cur.object_type || ' ' || cur.module || ' compile;');
end loop;
end;
spool off
@/tmp/recompile.sql
!rm /tmp/recompile.sql
set heading on
set termout on
set pagesize 1000
spool <path_and_filename_of_your_Invalid_Objects_output_file>
select do.owner || '.' || do.object_name from dba_objects do join obj$ o on (do.object_id = o.obj#) where o.status = 5;
spool off
quit
EOF
exit $?Edited by: SeánMacGC on Apr 29, 2009 1:12 PM -
I am new to SSRS and I am trying to migrate reports from 2008 to 2012. As I have so many reports to migrate, I simply got the back up of ReportServer,
ReportServerTempDB, and Encryption Key and restored them to test environment. I made necessary configuration from RS configuration tool. I am able to see the reports now when I browse //hostname/reports. But when I open any particular report I am getting some
error.
· An error has occurred during report processing.
(rsProcessingAborted)
Query execution failed for dataset 'dataSet'.
(rsErrorExecutingCommand
Semantic query execution failed. Invalid object name
'RPT. ******'. (rsSemanticQueryEngineError)
****** - I am assuming this is a custom data class.
Does anyone have insight on this? or any better way that I can migrate the reports to new server with less efforts.
I don’t have the reports solution file to deploy the reports, so I have followed backup and restore process.Hi Kishore237,
According to your description, you migrated some reports from Reporting Services (SSRS) 2008 to 2012. Now you get error when accessing the reports on SSRS 2012. Right?
In this scenario, did you modify the report data source in database after migration? You can try to open the report in Report Builder or Report designer and check the report dataset. If you can preview the report in Report builder or Report designer,
please try to redeploy the report to Report Server. If it is still not working, please try to restore the database from backup. And for migrating reports, please follow the "Content-Only Migration" in the link below:
http://msdn.microsoft.com/en-us/library/ms143724(v=sql.110).aspx
If you have any question, please feel free to ask.
Best Regards,
Simon Hou -
INVALID 상태의 OBJECT를 RECOMPILE하는 PROCEDURE
제품 : ORACLE SERVER
작성날짜 : 2002-04-18
INVALID 상태의 OBJECT를 RECOMPILE하는 PROCEDURE
===============================================
Purpose
Import를 하거나 DDL 작업을 하고 나서 procedure 나 package등의
pl/sql object가 invalid로 빠지는 경우가 있다. 이런 object들을
찾아서 recompile해주는 procedure를 소개한다.
Explanation
이 procedure는 User 내의 모든 Invalid 상태의 procedure, function,
package 등의 Object 들을 Recompile한다. Compile에러가 발생하는 경우
dbms_output package를 이용하여 화면에 display해 주게 되므로 실행하기
전에 set serveroutput on 을 반드시 실행한다.
Invalid된 object가 많은 경우라면 compile에러의 확인을 위해 spool을
받는 것이 좋다.
CREATE OR REPLACE PROCEDURE RecompileInvalid IS
CURSOR getlist IS SELECT object_type, object_name FROM
user_objects WHERE status = 'INVALID' AND
object_type IN ('PROCEDURE', 'FUNCTION', 'PACKAGE',
'PACKAGE BODY', 'TRIGGER' );
schemaname VARCHAR2(100);
CURSOR geterr ( objname VARCHAR2, objtype VARCHAR2 ) IS
SELECT text, line, position FROM user_errors WHERE
name = objname AND type = objtype;
BEGIN
SELECT username INTO schemaname FROM user_users;
FOR getlistrec IN getlist LOOP
dbms_output.put_line( 'attempting compile on ' ||
getlistrec.object_name );
dbms_ddl.alter_compile( getlistrec.object_type,
schemaname, getlistrec.object_name );
END LOOP;
FOR getlistrec IN getlist LOOP
dbms_output.put_line( '---ERROR---' );
dbms_output.put_line( 'compile failed on ' ||
getlistrec.object_name );
FOR geterrrec IN geterr( getlistrec.object_name,
getlistrec.object_type ) LOOP
dbms_output.put_line( 'line: ' || geterrrec.line ||
' col: ' || geterrrec.position );
dbms_output.put_line( substr( geterrrec.text, 1, 100 ));
END LOOP;
END LOOP;
END;
Example
SQL> spool Compile.log
SQL> set serveroutput on
SQL> exec recompileinvalid;
attempting compile on CRYPTIT
attempting compile on CRYPTIT
attempting compile on DECRYPT
attempting compile on ENCRYPT
attempting compile on SYNC_IM_INDEX
PL/SQL procedure successfully completed.
SQL> spool off우연의 일치인지 저도 어제 rac 기술지원을 나왔는데..
통계정보를 수집하려고하니 dbms_stats가 invalid되어 있더군요.
compile 명령을 하려다가 다른 패키지도 invalid되어있기도해서
utlrp.sql을 수행했습니다.
물론 백업 후 restart한 후에 세션 모두 클리어시키고 수행했습니다.
그런데 한번 해서 안되는 경우도 있으니 invalid object의 결과를 보고
utlrp.sql을 여러번 더 수행하면 해결됩니다.
## invalidobj.sql
doc
invalid 된 object에 대한 출력
col owner format a20
col object_name format a30
select owner, object_name, OBJECT_TYPE,CREATED,LAST_DDL_TIME, STATUS
from dba_objects where status<>'VALID';
글 수정:
민천사 (민연홍)
그런데 중요한 것은.. 이것이 open상태에서 수행되더라도
오라클에서는 그냥 수행해도 문제없다고 하더라도..
제 개인적인 의견으로는 서비스 중에 수행해서는 절대 안된다고
생각합니다. 서비스에 어떠한 영향이 갈지도 모르니까요. 문제가
발생하면 그건 이 작업을 수행한 DBA탓 이겠죠. 장애보고서 써야하고
골치가 아픕니다.
저같은 경우에는 백업을 2copy를 하는데 미디어(테이프장치)를
서로 다른 미디어를 써서 2copy를 해야 작업 시작하겠다고 했고
그렇게 했습니다. 또한 세션을 모두 클리어시킨 후에 작업했구요.
장애에 대한 강박관념이라고 할지 모르겠지만 지금까지 본 봐로는
이렇게 꼼꼼하게 챙기지 않고 장애가 난다면 업계에 오래에 머무르기
힘들 것 같다는 생각이 들더군요..~
제가 장애에 너무 민감해서 말씀드리는 것이지 충고를 하는 것은 아닙니다.
오해가 없으시길 바랍니다. -
SP 2013 Server + Dec 2013 CU. Upgrading from SharePoint 2010.
We have a web application that is distributed over 7-8 content databases from SharePoint 2010. All but one database are upgradable. However, one database gives:
Invalid object name 'Webs'.
while running Test-SPContentDatabase or Mount-SPContentDatabase.
EventViewer has the following reporting 5586 event Id:
Unknown SQL Exception 208 occurred. Additional error information from SQL Server is included below.Invalid object name 'Webs'.
After searching a bit, these links do not help:
http://social.technet.microsoft.com/Forums/sharepoint/en-US/fd020a41-51e6-4a89-9d16-38bff9201241/invalid-object-name-webs?forum=sharepointadmin
we are trying PowerShell only.
http://blog.thefullcircle.com/2013/06/mount-spcontentdatabase-and-test-spcontentdatabase-fail-with-either-invalid-object-name-sites-or-webs/
In our case, these are content databases. This is validated from Central Admin.
http://sharepointjotter.blogspot.com/2012/08/sharepoint-2010-exception-invalid.html
Our's is SharePoint 2013
http://zimmergren.net/technical/findbestcontentdatabaseforsitecreation-problem-after-upgrading-to-sharepoint-2013-solution
Does not seem like the same exact problem.
Any additional input?
Thanks, Soumya | MCITP, SharePoint 2010Hi,
“All but one database are upgradable. However, one database gives:
Invalid object name 'Webs'.”
Did the sentence you mean only one database not upgrade to SharePoint 2013 and given the error?
One or more of the following might be the cause:
Insufficient SQL Server database permissions
SQL Server database is full
Incorrect MDAC version
SQL Server database not found
Incorrect version of SQL Server
SQL Server collation is not supported
Database is read-only
To resolve the issue, you can refer to the following article which contains the causes and resolutions.
http://technet.microsoft.com/en-us/library/ee513056(v=office.14).aspx
Thanks,
Jason
Forum Support
Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
[email protected]
Jason Guo
TechNet Community Support -
Invalid object error while migrating oracle forms 6i to APEX
Hi,
I have a form name abc.fmb and I did converted to xml and imported using application migration in APEX
With these I have nine PL/SQL libraries (PLL). converted it to PLD using rwconvertor and imported in APEX. Also, I have 4 tables i.e data base block in forms.
Now, when i m migrating forms to APEX it is giving an error message saying invalid objects and shows the table name and column name. But the column name that it shows is a text box in the form that is also a database item ...
eg:- addr is the block name in forms
item name dsp_name
error: invalid object
Please suggest.
Thanks,
AP.Hi AP
i would suggest this...
Oracle Application Express (APEX)
Regards,
Abdetu... -
Why do I get "Error 1 occured at Config Data Registry.vi(get data) invalid object 0" when starting my application created in LabVIEW 7.1? I am starting the application in a PXI rack running Windows XP. I have an executable written in LabVIEW 7.0 that runs without this error. After clicking the Continue button in the error, the application seems to continue happily.
Is there something I need to include when I make the executable?
I would like to understand and eliminate this start up error.
Thanks in advance.
BobNorthHi Bob,
I looked through the program and I figured out where the error is coming from, and potentially what is causing it. In a lot of the cases of the program you are searching a 1-D array for the name of the case, and if you don't find it then it skips the function and gives "Error 1 occurred at Config Data Registry.vi(CASENAME) invalid object 0". I attached a screenshot that shows what I mean. The Search 1-D Array.vi is returning a -1 which means it didn't find the case. The reason I believe this is happening is because the shift register for that array is not initialized. While the other cases "reset" and "register" interact with the array shift registers and most likely create the array you need, if the program defaults to the "get data" case then it will try to run that before registering and won't have an array to search. This would also explain why it only has this problem at first and seems to run just fine after that. To fix this you should either make an initial array and wire it into the shift register or make the "reset" case the default as opposed to the "get data" case.
Regards,
Peter W.
Attachments:
Config Data Registry.png 55 KB
Maybe you are looking for
-
Hi , i applid oss note 1046758. to 2 include and 1 program includes: J_1IEWT_CERT_TOP J_1IEWT_CERT_F01 program : J_1IEWT_CERT But i getting error like report/program statement missing. plz give me solution Edited by: vasanth kandula o
-
Team As we have On-Premises SharePoint 2013 and Office Web Apps 2013 server. SharePoint site is running over https and office web apps running over http. Everything seems to be correct and able to view documents in browser. Once we tried to edit the
-
Setting PATH and CLASSPATH in Java Applet
Hi, I have been wondering if there was a way to set the PATH and the CLASSPATH in the HTML file within the <APPLET> tag... What I would like to do is to read some xml files outside of the directory where my html file is located to run my test applica
-
new contact and calendar information on my iphone will not sync up to MobileMe or directly to the computer even if they are connected. How do I sync them? Push is on and so is automatic syncing.
-
Why is the iPod touch 4th small
Why is the iPod touch 4th small