Nesneler tablosunda görünmeyen bir nesneyi nasıl bulurum?


11

Adında bir nesne var cot_ntn_pi_v. Bunun bir eşanlamlı olduğu söylendi. All_synonyms tablosunda görünmez. Bir görünüm veya tabloya benziyor ama tüm nesneler tablosunda bulamıyorum. Ondan seçim yapabilirim, ancak 'yok' olduğu için bırakamıyorum ve 'ad zaten başka bir nesne tarafından kullanılıyor' ile aynı ada sahip yeni bir tablo oluşturamıyorum.

Deliriyor muyum yoksa gerçekten aptalca bir şey mi yapıyorum?


1
Öğe üzerinde izniniz yoksa ALL_ * tablolarında gösterilmeyebilir. Yönetimsel bir giriş yapmanız ve DBA_ * veri sözlüğü tablolarına bakmanız gerekebilir.
ConcernedOfTunbridgeWells

Yanıtlar:


11

Tablo ile aynı ad alanındaki nesne türleri şunlardır:

  • Bağımsız prosedürler
  • Tek başına saklanan işlevler
  • Paketler
  • Kullanıcı tanımlı türler
  • Diziler
  • Görüntüleme
  • Özel Eş anlamlılar
  • Gerçekleştirilen Görünümler

Bu nedenle muhtemelen bu türlerden biridir. Eğer ondan seçim yapabiliyorsanız, ilk beşi tablo, görünüm, özel eşanlamlı veya somutlaştırılmış görünüm olarak bırakır.

Arama yaptığınızda all_objectsvs. büyük harf kullandınız mı? Örneğin,

select *
  from ALL_OBJECTS
 where OBJECT_NAME = 'COT_NTN_PI_V'; 

SQL Geliştirici veya Kurbağa gibi bir araç kullanıyorsanız, nesneyi sizin için tanımlamasına izin verebilirsiniz. Araçtaki adı vurgulayın ve Shift-F4Geliştirici veya F4Kurbağa'da tuşuna basın . Kurbağa, nesne hakkında çok fazla açıklama sağlarken, Ayrıntılar sekmesindeki Geliştirici, içinde TABLE_NAMEveya MVIEW_NAMEiçinde bir satır olacak ve bu size ne olduğunu gösterecektir.

Ne olduğunu öğrendikten sonra, onu nasıl bırakacağınızı bilmeyi kolaylaştıracaktır.


Evet sql developer ve shift + f4 kullanarak neye ihtiyacım olduğunu bulabildim! Teşekkürler :)
BON

4

Nesnenin kendisinde herhangi bir hibeniz yoksa, ALL_% tablolarında nesneyi göremeyebilirsiniz, bu nedenle DBA_OBJECTS tablosunu kontrol edin (bunu yapmak için hibe / uygun şekilde yetkilendirilmiş bir kullanıcıya ihtiyacınız olacaktır):

select * 
from DBA_OBJECTS
where object_name = 'COT_NTN_PI_V';

Bu herhangi bir çıktı oluşturmazsa, bu sorgu ile ham Oracle veri sözlüğü tablolarını kontrol edebilirsiniz:

select u.name as owner, o.name as object_name, 
 decode(o.type#, 0, 'NEXT OBJECT', 1, 'INDEX', 2, 'TABLE', 3, 'CLUSTER',
 4, 'VIEW', 5, 'SYNONYM', 6, 'SEQUENCE',
 7, 'PROCEDURE', 8, 'FUNCTION', 9, 'PACKAGE',
 11, 'PACKAGE BODY', 12, 'TRIGGER',
 13, 'TYPE', 14, 'TYPE BODY',
 19, 'TABLE PARTITION', 20, 'INDEX PARTITION', 21, 'LOB',
 22, 'LIBRARY', 23, 'DIRECTORY', 24, 'QUEUE',
 28, 'JAVA SOURCE', 29, 'JAVA CLASS', 30, 'JAVA RESOURCE',
 32, 'INDEXTYPE', 33, 'OPERATOR',
 34, 'TABLE SUBPARTITION', 35, 'INDEX SUBPARTITION',
 39, 'LOB PARTITION', 40, 'LOB SUBPARTITION',
 43, 'DIMENSION',
 44, 'CONTEXT', 47, 'RESOURCE PLAN',
 48, 'CONSUMER GROUP',
 51, 'SUBSCRIPTION', 52, 'LOCATION', 56, 'JAVA DATA', 'UNKNOWN') as type,
o.ctime, o.mtime,
 to_char(o.stime, 'YYYY-MM-DD:HH24:MI:SS'),
 decode(o.status, 0, 'N/A', 1, 'VALID', 'INVALID') as status
 from sys.obj$ o, sys.user$ u
 where o.owner# = u.user#
 and o.linkname is null
 and (o.type# not in (1 , 10) or
 (o.type# = 1 and 1 = (select 1
 from sys.ind$ i
 where i.obj# = o.obj#
 and i.type# in (1, 2, 3, 4, 6, 7, 9))))
 and o.name = 'COT_NTN_PI_V';
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.