เหตุใดใน Oracle 11gR2 ฉันไม่สามารถปล่อยมุมมองที่ปรากฏขึ้นกับผู้ใช้รายเดียวกับที่สร้างขึ้นได้


11

ฉันสร้างมุมมองที่ปรากฏกับผู้ขอชื่อมันDI_TEST_AL MY_MVIEWมันปรากฏในUSER_OBJECTSตารางในขณะที่MATERIALIZED VIEWฉันพยายามวางมันฉันได้รับข้อความแสดงความสำเร็จ แต่วัตถุยังอยู่ที่นั่น อันที่จริงถ้าฉันพยายามที่จะสร้างมันขึ้นมาใหม่ฉันได้รับข้อผิดพลาดเช่น "วัตถุมีอยู่แล้ว"

ฉันเห็นว่ามีตารางที่มีชื่อเดียวกันกับสคีมาอื่น ฉันคิดว่าไม่ควรทำให้เกิดปัญหา แต่ฉันรู้สึกอยากพูดถึงมัน

นี่คือเอาต์พุต SQL * Plus:

SQL*Plus: Release 11.2.0.1.0 Production on Mon Aug 1 17:01:50 2011

SQL> select object_name, object_type, owner from all_objects where object_name = 'MY_MVIEW';  
OBJECT_NAME OBJECT_TYPE       OWNER
----------- ----------------- ----------
MY_MVIEW    MATERIALIZED VIEW DI_TEST_AL
MY_MVIEW    TABLE             DIDEV11

SQL> DROP MATERIALIZED VIEW MY_MVIEW;
Materialized view dropped.

SQL> select object_name, object_type, owner from all_objects where object_name = 'MY_MVIEW';
OBJECT_NAME OBJECT_TYPE       OWNER
----------- ----------------- ----------
MY_MVIEW    MATERIALIZED VIEW DI_TEST_AL
MY_MVIEW    TABLE             DIDEV11

SQL> 

ฉันตรวจสอบการอนุญาตของฉันซ้ำสองครั้งและDROP ALL MATERIALIZED VIEWSมอบให้กับDI_TEST_ALผู้ใช้


คือDO_OPP_SEARCH_MVIEWอะไร
แจ็คบอกว่าลอง topanswers.xyz

หากคุณต้องการวางมุมมอง materialized MY_MVIEW ให้วางไว้เช่น: DROP MATERIALIZED VIEW MY_MVIEW ตู้เอทีเอ็มคุณกำลังทิ้งสิ่งอื่นและอาจเป็นเรื่องสำคัญ ...
Kerri Shotts

1
ฉันพยายามจะลบ MY_MVIEW ฉันเปลี่ยนชื่อในตัวอย่างเพื่อความกะทัดรัด แต่ฉันลืมบิตนั้นไป ... ความคิดใดที่จะแก้ปัญหานี้ ทำไม oracle บอกว่ามันตก แต่มันไม่ใช่เหรอ? ไชโย
basilikode

คุณมีสัญญาสนับสนุนหรือไม่ มีข้อบกพร่อง 10g บางตัวที่ทำให้คุณเห็น ฉันพยายามทำซ้ำกับ 11gR2 แต่ไม่สามารถทำได้ บางทีให้สคริปต์ที่สมบูรณ์จากตารางเริ่มต้นและ MV ที่คนอื่นสามารถลองทำซ้ำ
Matthew Watson

พยายามที่จะรวมในการเลือกในSTATUS ALL_OBJECTSฉันยังมีปัญหานี้และสำหรับฉันสถานะในมุมมองที่ปรากฏเป็นINVALIDจริง
กลัว

คำตอบ:


10

เชื่อมต่อเป็น sysdba และตรวจสอบว่ามีรายการใด ๆ ใน dba_summaries สำหรับ MV หากมีการเรียกใช้

drop summary <OWNER>.<MV_NAME>;`

ขอขอบคุณคู่ที่ได้รับการป้องกันไม่ให้ดู materialized จะถูกลบออกอย่างสมบูรณ์ ...
basilikode

ฉันมีปัญหาตรงนี้และ MV dba_summariesได้เข้าจดทะเบียนใน ปัญหาคือเมื่อฉันพยายามที่จะเรียกDROP SUMMARY MY_OWNER.MY_MATERIALIZED_VIEW;ฉันได้รับข้อผิดพลาดORA-00950 ... ตัวเลือก
กลัว

@awe ลองเชื่อมต่อฐานข้อมูลของคุณเป็น / sysdba จากนั้นคุณสามารถใช้คำสั่ง DROP SUMMARY
Atilla Ozgur

0

ฉันประสบปัญหาที่คล้ายกันเมื่อฉันพยายามที่จะลดมุมมองที่เป็นรูปธรรมซึ่งบอกว่าไม่มีมุมมอง ถ้าฉันพยายามที่จะสร้างมันก็บอกว่าชื่อมีอยู่แล้ว นี่เป็นข้อผิดพลาดใน Oracle

ก่อนที่จะปล่อยมุมมองแบบสอบถามบนตาราง all_object

SQL: SELECT * จาก ALL_OBJECTS WHERE OBJECT_NAME = 'MY_MVIEW'; มันควรจะคืนค่า 2 เร็กคอร์ด ojbect_type = TABLE และ Object_type = มุมมองแบบ MATERIALIZED

แต่ถ้ามันแสดงเพียงหนึ่งระเบียนที่มี Object_type = Table ให้วางตารางนั้นจากฐานข้อมูล

วางตาราง MY_MVIEW;

และพยายามสร้างมุมมองที่ปรากฏขึ้นอีกครั้ง มันควรจะทำงาน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.