it-swarm.asia

كيف أجد كائنًا لا يبدو موجودًا في جدول الكائنات؟

لدي كائن يسمى cot_ntn_pi_v. قيل لي أن هذا مرادف. لا يظهر في جدول all_synonyms. يبدو وكأنه طريقة عرض أو جدول ولكن لا يمكنني العثور عليه في جدول كافة الكائنات. يمكنني الاختيار منه ، ولكن لا يمكنني إسقاطه لأنه "غير موجود" ولا يمكنني إنشاء جدول جديد بنفس الاسم مثل "الاسم مستخدم بالفعل من قبل كائن آخر".

هل سأصاب بالجنون أو أفعل شيئًا غبيًا حقًا؟

11
BON

أنواع الكائنات في نفس مساحة الاسم كجدول هي:

  • إجراءات قائمة بذاتها
  • وظائف مخزنة قائمة بذاتها
  • الحزم
  • أنواع معرفة من قبل المستخدم
  • تسلسل
  • الآراء
  • المرادفات الخاصة
  • آراء مادية

لذلك ربما يكون أحد هذه الأنواع. إذا كان بإمكانك الاختيار منه ، فإنه يستبعد أول خمسة يتركونها لتكون إما جدولًا أو عرضًا أو مرادفًا خاصًا أو عرضًا ملموسًا.

عندما بحثت في all_objects إلخ. هل استخدمت الأحرف الكبيرة؟ فمثلا،

select *
  from ALL_OBJECTS
 where OBJECT_NAME = 'COT_NTN_PI_V'; 

إذا كنت تستخدم بعض الأدوات مثل SQL Developer أو Toad يمكنك السماح لها بوصف الكائن لك. قم بتمييز الاسم في الأداة واضغط على Shift-F4 في المطور أو F4 في العلجوم. يوفر Toad الكثير من الوصف حول الكائن بينما سيكون للمطور ، في علامة التبويب تفاصيل ، صف به TABLE_NAME أو MVIEW_NAME فيه وهذا سيظهر لك ما هو.

بمجرد أن تعرف ما هو عليه ، فإنه سيسهل عليك معرفة كيفية إسقاطه.

11
John Doyle

قد لا تتمكن من رؤية الكائن في الجداول ALL_٪ إذا لم يكن لديك أي منح على الكائن نفسه ، لذا تحقق في جدول DBA_OBJECTS (ستحتاج إلى منح/مستخدم تم منحه بشكل مناسب للقيام بذلك):

select * 
from DBA_OBJECTS
where object_name = 'COT_NTN_PI_V';

إذا لم ينتج عن ذلك أي مخرجات ، يمكنك التحقق في جداول قاموس بيانات Oracle الأولية باستخدام هذا الاستعلام:

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';
4
Philᵀᴹ