Тема
|
oracle can't drop MATERIALIZED VIEW
|
|
Автор | krasi (Нерегистриран) |
Публикувано | 09.03.04 13:37 |
|
Вижте сега кво става тука :
свързвам се като потребител dev.
SQL> desc ggg;
Name Null? Type
------------------------------- -------- ----
DAY CHAR(1)
SQL> drop table ggg;
drop table ggg
*
ERROR at line 1:
ORA-12083: must use DROP MATERIALIZED VIEW to drop "DEV"."GGG"
SQL> DROP MATERIALIZED VIEW ggg;
DROP MATERIALIZED VIEW ggg
*
ERROR at line 1:
ORA-12003: snapshot "DEV"."GGG" does not exist
SQL> desc ggg;
Name Null? Type
------------------------------- -------- ----
DAY CHAR(1)
SQL> select * from ggg;
no rows selected
не мога да намеря ключа от палатката :)))
това view го създадох при rebuild - с TOAD по следния начин
rename view1 to view_x
create view1
insert на всичко от view_x в view1
(тва става със стандартен скрип на TOAD)
после изтрих всичко от view_x с truncate и го преименувах в GGG
защото една процедура която ползва view-to започна да прази мизерии макар да е против всякаква логика.
сега обаче защо не мога да го изтрия ???
|
|
Тема
|
Re: oracle can't drop MATERIALIZED VIEW
[re: krasi]
|
|
Автор |
no_data_found (потребител) |
Публикувано | 09.03.04 13:44 |
|
Това като гледам е VIEW, така че защо не тестваш със:
DROP VIEW my_view_name;
Направи SELECT от таблицата user_objects и виж какъв е този обект ggg.
Ключа от палатката най-вероятно е в тази таблица ![](http://i.dirbg.com/clubs/icons/cool.gif)
|
|
Тема
|
Re: oracle can't drop MATERIALIZED VIEW
[re: no_data_found]
|
|
Автор | krasi (Нерегистриран) |
Публикувано | 09.03.04 14:22 |
|
SQL> drop view ggg;
drop view ggg
*
ERROR at line 1:
ORA-00942: table or view does not exist
select * from user_objects where object_name ='GGG'
OBJECT_NAME
----------------------------------------------------------------------------------------------------
SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE CREATED LAST_DDL_
------------------------------ --------- -------------- ------------------ --------- ---------
TIMESTAMP STATUS T G S
------------------- ------- - - -
GGG
4974 6720 TABLE 23-OCT-03 09-MAR-04
2004-03-09:11:41:38 VALID N N N
--OBJECT_TYPE го дава table но с drop table дава
SQL> drop table ggg;
drop table ggg
*
ERROR at line 1:
ORA-12083: must use DROP MATERIALIZED VIEW to drop "DEV"."GGG"
|
|
Тема
|
Re: oracle can't drop MATERIALIZED VIEW
[re: krasi]
|
|
Автор |
Zloster (The black adder) |
Публикувано | 09.03.04 14:39 |
|
Ами нещото което ми идва на ум да проверя в подобни ситуации е дали имам права за тази комнада. В случая при теб е DROP ANY VIEW ( Oracle 8.1.7 най-верятно в 9i няма да се различава много по име , ако изобщо има разлики)!
Може би не е от това , ето синтаксиса за 8i:
Purpose
To remove an existing materialized view from the database.
The terms "snapshot" and "materialized view" are synonymous.
Prerequisites
The materialized view must be in your own schema or you must have the DROP ANY MATERIALIZED VIEW (or DROP ANY SNAPSHOT) system privilege. You must also have the privileges to drop the internal table, views, and index that Oracle uses to maintain the materialized view's data.
Examples
The following statement drops the materialized view PARTS owned by the user HQ:
DROP SNAPSHOT hq.parts;
The following statement drops the SALES_BY_MONTH materialized view and the underlying table of the materialized view (unless the underlying table was registered in the CREATE MATERIALIZED VIEW statement with the ON PREBUILT TABLE clause):
DROP MATERIALIZED VIEW sales_by_month;
Защо да правим нещата лесно...![](http://i.dirbg.com/clubs/icons/frown.gif) Редактирано от Zloster на 09.03.04 14:44.
|
|
Тема
|
Re: oracle can't drop MATERIALIZED VIEW
[re: Zloster]
|
|
Автор | krasi (Нерегистриран) |
Публикувано | 09.03.04 15:42 |
|
има я тази привлегия , че и DBA има
|
|
Тема
|
Re: oracle can't drop MATERIALIZED VIEW
[re: krasi]
|
|
Автор | Ooo (Нерегистриран) |
Публикувано | 09.03.04 16:09 |
|
Я виж какво ти връща това:
select mview_name, container_name from user_mviews
|
|
Тема
|
Re: oracle can't drop MATERIALIZED VIEW
[re: Ooo]
|
|
Автор | krasi (Нерегистриран) |
Публикувано | 09.03.04 16:36 |
|
ами заявката дава таблиците която се рефрешват по snapshot-a
GGG не фигурира там.
естествено излиза view1 (тва име го измислих за форума , иначе е друго , да не се заблуждавате излишно)
|
|
|
Обясни пак стъпка по стъпка какво си направил и какво ти излиза, щото така няма да стане.
Тая грешка може да я даде и когато се опитваш да дропнеш таблица, върху която е създаден snapshot. Първо трябва да дропнеш snapshot-а , след това таблицата. При теб така ли е?
|
|
|
Ето какво казват по въпроса ( намерих даже и на руски ) ![](http://i.dirbg.com/clubs/icons/cool.gif)
Защо да правим нещата лесно...
|
|
|
Благодаря за търпението .
Сега ще пробвам по сносно да обясня.
Значи имаме обекта А който е snapshot table създаден чрез query върху
remote db.
чрез TOAD направих следното
rename A to A_X.
create A същата като A_X
insert into A (column1,column2,column3,column4 )
select column1,column2,column3,column4 from A_X
drop table A_X;
на последната стъпка даде грешка и не се дропна.
заради подозрения че една процедура която ползва А не работи.
дадох truncate на A_X и я преименувах за да няма такива съмнения.
GGG е новото име .
SQL> select OBJECT_TYPE from user_objects where OBJECT_NAME ='GGG';
OBJECT_TYPE
------------------
TABLE
SQL> drop table ggg;
drop table ggg
*
ERROR at line 1:
ORA-12083: must use DROP MATERIALIZED VIEW to drop "DEV"."GGG"
SQL> DROP MATERIALIZED VIEW ggg;
DROP MATERIALIZED VIEW ggg
*
ERROR at line 1:
ORA-12003: snapshot "DEV"."GGG" does not exist
SQL> select * from ggg;
no rows selected
SQL> desc ggg;
Name Null? Type
------------------------------- -------- ----
DAY CHAR(1)
select mview_name, container_name from user_mviews;
връща един списък в който обекта А
го има и двете колони - MVIEW_NAME и CONTAINER_NAME
но GGG не фигирира там.
Така да се надявам е обяснено по добре.
;)))
|
|