Ignore SYS.BFILE of type TYPE
usrecnik opened this issue · 1 comments
usrecnik commented
.. because it's source is never available, here is a testcase:
SQL> select count(*) from dba_objects where owner='SYS' and object_type='TYPE' and object_name='BFILE';
COUNT(*)
----------
1
SQL> select count(*) from dba_source where owner='SYS' and "TYPE"='TYPE' and "NAME"='BFILE';
COUNT(*)
----------
0
SQL> select dbms_metadata.get_ddl('TYPE', 'BFILE', 'SYS') from dual;
ERROR:
ORA-31603: object "BFILE" of type TYPE not found in schema "SYS"
ORA-06512: at "SYS.DBMS_METADATA", line 4018
ORA-06512: at "SYS.DBMS_METADATA", line 5843
ORA-06512: at line 1
usrecnik commented
Actually, there is much more of such objects:
SQL> select object_name from dba_objects o where o.owner='SYS' and o.object_type='TYPE' and not exists (select 1 from dba_source s where s.owner='SYS' and s."TYPE"='TYPE' AND s."NAME"=o.object_name);
OBJECT_NAME
------------------------------
BFILE
BINARY ROWID
BINARY_DOUBLE
BINARY_FLOAT
BLOB
CANONICAL
CFILE
CHAR
CLOB
CONTIGUOUS ARRAY
DATE
DECIMAL
DOUBLE PRECISION
FLOAT
INTEGER
INTERVAL DAY TO SECOND
INTERVAL YEAR TO MONTH
KOTAD
KOTADX
KOTMD
KOTMI
KOTTB
KOTTBX
KOTTD
LOB POINTER
NAMED COLLECTION
NAMED OBJECT
NUMBER
OCTET
OID
PL/SQL BINARY INTEGER
PL/SQL BOOLEAN
PL/SQL COLLECTION
PL/SQL LONG
PL/SQL LONG RAW
PL/SQL NATURAL
PL/SQL NATURALN
PL/SQL PLS INTEGER
PL/SQL POSITIVE
PL/SQL POSITIVEN
PL/SQL RECORD
PL/SQL REF CURSOR
PL/SQL ROWID
PL/SQL STRING
POINTER
RAW
REAL
REF
SIGNED BINARY INTEGER(16)
SIGNED BINARY INTEGER(32)
SIGNED BINARY INTEGER(8)
SMALLINT
TABLE
TIME
TIME WITH TZ
TIMESTAMP
TIMESTAMP WITH LOCAL TZ
TIMESTAMP WITH TZ
UNSIGNED BINARY INTEGER(16)
UNSIGNED BINARY INTEGER(32)
UNSIGNED BINARY INTEGER(8)
UROWID
VARCHAR
VARCHAR2
VARYING ARRAY
KOKED
KOKED1
67 rows selected.