I currently have issues with a certain view.
Looking for ideas how to correct that.
C:\>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Mi Feb 25 17:39:54 2015
Copyright (c) 1982, 2010, Oracle. All rights reserved.
SQL> connect me@myDatabase
Kennwort eingeben:
Connect durchgef³hrt.
SQL> alter session set nls_territory=AMERICA;
Session wurde geõndert.
SQL> alter session set nls_language=AMERICAN;
Session altered.
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE 11.2.0.3.0 Production
TNS for 64-bit Windows: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production
SQL> DROP VIEW V_BERECHTIGTER_DIFF;
DROP VIEW V_BERECHTIGTER_DIFF
*
ERROR at line 1:
ORA-06553: PLS-103: Encountered the symbol "BER_AVA_A" when expecting one of
the following:
<an identifier> <a double-quoted delimited-identifier>
ORA-06553: PLS-112: end-of-line in quoted identifier
SQL>
I understand where the error came from. The view was exported and imported using some automated scripts.
One of the scripts used a linesize of 1000.
Which resulted in the following create statement.
CREATE OR REPLACE FORCE VIEW .... "COL1", "COL2", "COL3",... "BER_AVA_A
RT", "COL20", "COL21"
...
The line was broken after 1000 characters, which was the last A from column "BER_AVA_ART".
The view nonetheless is now in the data dictionary. I'd like to get rid of it.
The same error message happens for all activity involving that view, like create or replace, select.
btw: I very strongly advice not to try and recreate that error!
My impression is that I got some library cache corruption because of that view. Which in turn prevents dropping the object.
Is there any other (supported) way to get rid of an object?